如何将django请求发布到外部服务器

时间:2013-05-31 21:06:04

标签: python django rest request

大家好,我在django视图中使用此方法将文件发布到其他服务器。我收到HTTP 415错误抱怨请求的媒体类型。我调试了请求并将其内容复制并粘贴到fiddler中。当我从小提琴手发布同样的作品时。所以我不明白为什么它不能使用python请求包。

任何人都可以帮我吗?

感谢。

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

2 个答案:

答案 0 :(得分:3)

这样做:

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

当您只需要其发布数据时,您正在将完整的django.http.HttpRequest对象传递给requests.post

答案 1 :(得分:0)

如果您查看关于data关键字的documentation of requests

  

数据 - (可选)要在请求正文中发送的字典,字节或类文件对象。

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