如何使用pycurl发送没有“POST/http/1.1”头的http正文?

2024-10-01 04:51:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我将一些数据发送到mysockserver,监听一个socket并期望得到如下数据

packet='A'+struct.pack("!I", 98)+"Hello World blah blah"

一切正常。 现在我需要将上述数据发送到位于http后面的上述套接字mytcpipserver.com网站. mytcpipserver.com网站正在将邮件重定向到mysockserver。我试着跟着

^{pr2}$

我可以看到msg正在按如下方式到达mysockserver,但我希望看到服务器只接收原始数据,即“A”+结构包("!我“,98)+“你好,世界,等等”

"POST / HTTP/1.1

A<rest of message>"

mysockserver不希望到达的消息以POST开头,而是以+PackedInteger+MoreData开头。 基本上,我如何发送没有任何头的原始数据?在

所以现在的问题是,如何发送没有头“POST/HTTP/1.1”的body?


Tags: 数据comhttphelloworld原始数据packet网站
1条回答
网友
1楼 · 发布于 2024-10-01 04:51:17

不要使用pycurl,直接使用socket模块。Pycurl用于发送http请求,而您的服务器显然是http服务器,因为您得到的整数是原始POST请求的一部分:

>>> binascii.unhexlify(hex(1330861088)[2:])
'OST '

它应该如何工作的简单示例:

^{pr2}$

另外,您试图使用json.dumps转储二进制数据,但是每个定义的json使用unicode,所以这行不通,而且可能不是您实际想要的。在

相关问题 更多 >