我正在尝试使用 python 编写 HTTP POST 请求脚本。
使用 bash 中的 curl 尝试它时,一切正常。使用 python,使用 therequests或urllib3-library,我收到来自 API 的错误响应。POST 请求包含标头中的信息和请求正文中的 json。
我注意到,当我用 Wireshark 拦截数据包时,curl 请求(正在工作)是一个长度为 374 字节的数据包。python-request(这里requests和urllib3这里没有区别)被分成 2 个单独的数据包,长度分别为 253 和 144 字节。
Wireshark 可以毫无问题地重新组装它们,它们似乎都在标题和 POST 正文中包含完整信息。但是我试图通过一个不是很有帮助的“处理请求时出错”的 API 连接到答案。
由于 253 字节不能成为 TCP 数据包的限制,这种行为的原因是什么?有没有办法解决这个问题?
编辑:
重击:
curl 'http://localhost/test.php' -H 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.139 Safari/537.36' -H 'Content-Type: application/json' -d '{"key1":"value1","key2":"value2","key3":"value3"}'
Run Code Online (Sandbox Code Playgroud)
Python:
import requests, json
headers = {
"User-Agent": "Mozilla/5.0 …Run Code Online (Sandbox Code Playgroud)