2013-05-31 164 views
1

嗨,所以我有这种方法在Django的意见将文件发布到不同的服务器。抱怨请求的媒体类型,我得到一个HTTP 415错误。我调试了请求并将其内容复制并粘贴在提琴手中。当我从小提琴手张贴相同的作品。所以我不明白为什么它不能使用python请求包。如何发布一个Django请求到外部服务器

任何人都可以帮助我吗?

谢谢。

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

回答

0

如果你看看它说,有关data关键字documentation of requests

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

Django的request对象是HttpRequest一个实例。你应该尽量把必要的数据字典,并把它传递给post()

3

这样做:

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

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

+0

嗨,感谢您的回复。现在的问题是当调用requests.post时,不会替换localhost:8000的POST url。由于表单发布到本地主机:8000 /最初上传到视图中的上传方法POST URL不正确。我希望这些请求会取代它,但它不会 –

相关问题