我想向几乎实时'实时流式传输的服务器发送GET请求。使用Chunk Transfer Encoding,我可以逐行修改。 例如:
SendChunks = SomeHTTPLibrary.SendData;
SendChunks(Example.org, "5\r\n")
SendChunks(Example.org, "Hello\r\n")
SendChunks(Example.org, "7\r\n")
SendChunks(Example.org, "Goodbye\r\n")
SendChunks(Example.org, "0\r\n")
我现在在哪里,我甚至不在乎听取回应。它不需要使用C ++,我对Python,Javascript,PHP或类似的东西感到满意。
答案 0 :(得分:1)
首先,您不应该发送请求正文以及GET请求。我认为你可以,但如果服务器对它做任何事情,那么它就不合规了。请参阅https://stackoverflow.com/a/983458/241294。
从你的问题看起来好像你已经知道你需要分块传输编码。下面是一个粗略的例子,说明如何在python中实现这一点,但是使用POST
请求而不是GET
请求(来自here的代码):
import httplib
conn = httplib.HTTPConnection('Example.org')
conn.connect()
conn.putrequest('POST', '/post')
conn.putheader('Transfer-Encoding', 'chunked')
conn.endheaders()
conn.send("5\r\n")
conn.send("hello\r\n")
conn.send("7\r\n")
conn.send("Goodbye\r\n")
conn.send("0\r\n")
resp = conn.getresponse()
print(resp.status, resp.reason, resp.read())
conn.close()
有关python分块函数的更好示例,请参阅How to force http.client to send chunked-encoding HTTP body in python?。