Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何将django请求发布到外部服务器_Python_Django_Rest_Request - Fatal编程技术网

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

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

您好,我在django视图中使用了这个方法将文件发布到其他服务器。我收到一个HTTP 415错误,抱怨请求的媒体类型。我已经调试了请求,并在fiddler中复制和粘贴了它的内容。当我从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))
如果你看一下,它说的是关于
数据
关键字:

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

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不正确。我希望请求会取代它,但事实并非如此