使用Rest Framework强制解析没有Content-Type的请求

时间:2014-09-24 01:25:19

标签: django rest django-rest-framework django-1.7

我正在编写一个用于接收JSON POST请求的Rest Framework视图。但是,传入请求没有Content-Type标头(有效HTTP),而documented,Rest Framework会抛出UnsupportedMediaType并返回415 Unsupported Media Type

我不控制客户端。尽管没有声明的内容类型,我如何强制使用JSONParser处理请求? (也许我可以在解析器处理之前访问底层请求?)

这是我目前的(简单)观点:

class Callback(APIView):
    # this doesn't help
    # parser_classes = (JSONParser,)
    def post(self, request, format=None):
        # ...operate on request.DATA

1 个答案:

答案 0 :(得分:2)

看看编写自定义内容协商类。

http://www.django-rest-framework.org/api-guide/content-negotiation#custom-content-negotiation

您希望将其基于默认实现,但如果没有其他匹配则返回JSONParser