2

嗨所以我在 django 视图中有这种方法可以将文件发布到不同的服务器。我收到一个 HTTP 415 错误,抱怨请求的媒体类型。我已经调试了请求并将其内容复制并粘贴到 fiddler 中。当我从提琴手发布相同的内容时,它起作用了。所以我不明白为什么它不能使用 python requests 包工作。

谁能帮我这个?

谢谢。

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))
4

2 回答 2

3

做这个:

r = requests.post('http://localhost:9090/validate', data=request.POST)

当您只需要它的发布数据时,您将一个完整的django.http.HttpRequest对象传递给 。requests.post

于 2013-05-31T22:13:08.590 回答
0

如果您查看请求的文档,它会说明data关键字:

data –(可选)要在请求正文中发送的字典、字节或类似文件的对象。

Django 的request对象是 . 的一个实例。HttpRequest您应该尝试将必要的数据放入字典中并将其传递给post().

于 2013-05-31T22:10:53.377 回答