2

我正在编写一个用于接收 JSON POST 请求的 Rest Framework 视图。但是,传入的请求没有 Content-Type 标头(有效的 HTTP),并且如文档所述,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
4

1 回答 1

2

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

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

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

于 2014-09-24T08:01:30.010 回答