小编Chr*_*n H的帖子

Python 请求拆分 TCP 数据包

我正在尝试使用 python 编写 HTTP POST 请求脚本。

使用 bash 中的 curl 尝试它时,一切正常。使用 python,使用 therequestsurllib3-library,我收到来自 API 的错误响应。POST 请求包含标头中的信息和请求正文中的 json。

我注意到,当我用 Wireshark 拦截数据包时,curl 请求(正在工作)是一个长度为 374 字节的数据包。python-request(这里requestsurllib3这里没有区别)被分成 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)

python tcp python-requests

5
推荐指数
1
解决办法
1875
查看次数

标签 统计

python ×1

python-requests ×1

tcp ×1