我在尝试将文件发布到服务器时遇到问题。我正在尝试将文件上传到服务器,这个服务器对正确性非常敏感
我调试了将文件发送到服务器的页面,并通过浏览器发送此文件(TextView):
POST http://example.com/post HTTP/1.1
Host: example.com
Connection: keep-alive
Content-Length: 20625
Accept: application/json, text/javascript, */*; q=0.01
Origin: http://example.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.104 Safari/537.36
Content-Type: multipart/form-data; boundary=----WebKitFormBoundarykGHBkXoER9gNuVna
Referer: http://example.com/foo
Accept-Encoding: gzip, deflate
Accept-Language: pl-PL,pl;q=0.8,en-US;q=0.6,en;q=0.4,pt;q=0.2
------WebKitFormBoundarykGHBkXoER9gNuVna
Content-Disposition: form-data; name="files[]"; filename="file.zip"
Content-Type: application/octet-stream
...raw file data...
------WebKitFormBoundarykGHBkXoER9gNuVna--
但是,我的脚本正在发送这个(TextView):
^{pr2}$对于服务器上的causes error,还需要注意:这个错误是在我将files=files
更改为data=files
时开始的
当前代码:
files = MultipartEncoder({'files[]': (filename, open(local_path,'rb'), mimetype)})
UploadFile = requests.post(self.UploadURL, data=files, allow_redirects=False)
工作代码:
files = {'files[]': (filename, open(local_path,'rb'), mimetype)}
UploadFile = requests.post(self.UploadURL, files=files, allow_redirects=False)
我使用MultipartEncoder
来允许发送大文件。
我看到最大的不匹配是“边界”,但为什么这个“边界”是在working code
中生成的,而在{
怎么解决?在
您没有设置
Content-Type
头,MultipartEncoder
为您提供了它:头必须来自多部分编码,因为它负责选择用于去除多部分响应中的各个MIME部分的边界。在你的上传中是:
^{pr2}$但它是在每次代码运行时随机生成的。提供的标题如下所示:
相关问题 更多 >
编程相关推荐