408请求超部分/表单数据上载超时

时间:2016-02-17 10:24:09

标签: python file-upload multipartform-data multipart

尝试通过python复制POST时遇到408 Request Timeout错误。

使用Chrome开发工具时,我可以看到请求的有效负载如下所示:

------WebKitFormBoundaryrDYOkUiAtKl4GqZG
Content-Disposition: form-data; name="profile_pic"; filename="maxresdefault.jpg"
Content-Type: image/jpeg


------WebKitFormBoundaryrDYOkUiAtKl4GqZG--

使用请求模块files参数我复制帖子,结果如下:

--e63ccee0b5784603a6c12c213929fe09
Content-Disposition: form-data; name="profile_pic"; filename="maxresdefault.jpg"
Content-Type: image/jpeg

���� JFIF  ` `  �� "Exif  MM *               �� C        



�� C�� ��" ��               
�� �   } !1AQa"q2���#B��R��$3br� 

--e63ccee0b5784603a6c12c213929fe09--

我复制的帖子上的标题与chrome dev-tools中显示的官方帖子相匹配。 当我从session.post中删除有效负载或更确切地说files = files参数时,我得到200 OK响应,说它成功了。

然而,正如你猜测的那样,没有图像,因为我没有发送图像。

在删除有效负载时看到我得到200 OK响应,并且在添加有效时发出408 Request Timeout,这让我几乎可以肯定我搞砸了实际的上传。

我尝试过缩小图像的方法,但它给了我同样的错误。

408请求超时也是即时的,在等待一点之后没有提示它实际上“超时”,它是在session.post发出时的瞬间。

请在此处查看我如何执行帖子:

r = session.post(URL, headers=headers, files=files) print r.status_code, r.text

请在此处查看files变量的制作方法:

profile_picture_path = self.user_details('avatar') profile_picture_name = ntpath.basename(profile_picture_path) files = {'profile_pic': (profile_picture_name, open(profile_picture_path), 'image/jpeg')}

0 个答案:

没有答案