尝试通过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')}