Python 如何将django请求发布到外部服务器
您好,我在django视图中使用了这个方法将文件发布到其他服务器。我收到一个HTTP 415错误,抱怨请求的媒体类型。我已经调试了请求,并在fiddler中复制和粘贴了它的内容。当我从fiddler那里发布同样的消息时,它起了作用。所以我不明白为什么使用python请求包它不起作用 有人能帮我吗 谢谢Python 如何将django请求发布到外部服务器,python,django,rest,request,Python,Django,Rest,Request,您好,我在django视图中使用了这个方法将文件发布到其他服务器。我收到一个HTTP 415错误,抱怨请求的媒体类型。我已经调试了请求,并在fiddler中复制和粘贴了它的内容。当我从fiddler那里发布同样的消息时,它起了作用。所以我不明白为什么使用python请求包它不起作用 有人能帮我吗 谢谢 def upload(request): if request.method == 'POST': url=settings.WEBSERVICES_URL+'valida
def upload(request):
if request.method == 'POST':
url=settings.WEBSERVICES_URL+'validate'
r = requests.post('http://localhost:9090/validate',data=request)
r2 = requests.get('http://localhost:9090/test')
return render_to_response("upload.html", context_instance=RequestContext(request))
else:
return render_to_response("upload.html", context_instance=RequestContext(request))
如果你看一下,它说的是关于数据关键字:
数据–(可选)要在请求正文中发送的字典、字节或类似文件的对象
Django的request
对象是的一个实例。您应该尝试将必要的数据放入字典中,并将其传递到post()
执行以下操作:
r = requests.post('http://localhost:9090/validate', data=request.POST)
您正在将完整的django.http.HttpRequest
对象传递给requests.post
,而您只需要它的post数据。您好,谢谢您的回复。现在的问题是,调用requests.POST时,不会替换localhost:8000的POST url。由于表单最初发布到localhost:8000/upload以达到视图中的上载方法,因此发布url不正确。我希望请求会取代它,但事实并非如此