我尝试测试我的服务器并使用django与android客户端连接。现在我的代码是
from django.http import HttpResponse
def first_page(request):
if request.method == 'POST':
return HttpResponse('you are post method')
android客户端帖子我的服务器总是500响应。并且如果更改方法。并使用if request.method == 'GET:'
它工作...我很困惑发生了什么... 'POST
方法不能使用HttpResponse
?
更新我的问题:
我们使用java来POST
我的django server.and返回错误作为打击
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection.getHeaderField(Unknown Source)
at java.net.URLConnection.getContentType(Unknown Source)
可以帮助我们吗?
答案 0 :(得分:1)
我会让你的观点更加健壮,以确保你不会忽视一个愚蠢的错误。您的视图应始终返回HttpResponse
对象,因此请在if
块之后添加一个返回值,如下所示:
from django.http import HttpResponse, HttpResponseBadRequest
def first_page(request):
if request.method == 'POST':
return HttpResponse('you are post method')
return HttpResponseBadRequest('Request type {} is not allowed'.format(request.method))
或者添加django的内置请求类型装饰器,以便在您的视图代码运行之前需要一个帖子:
from django.http import HttpResponse
from django.views.decorators.http import require_POST
@require_POST
def first_page(request):
return HttpResponse('you are post method')
然后确保将settings.DEBUG设置为True并查看从Android客户端获得的内容。
答案 1 :(得分:0)
您是否已将CSRF豁免功能包括在内?
@csrf_exempt
def my_method(request):
答案 2 :(得分:0)
#
中间件没问题!