服务器在最后一个块之前发送“最终块”

时间:2018-06-09 06:22:58

标签: python http chunked-encoding chunking

我正在制作一个简单的Python脚本来与服务器通信,以获取包含金钱,武器拥有,xp等播放器数据的XML文件。

在一个数据包中发送的文件太大,因此它会被分块。但是,在使用while while循环时:

def parseChunk(chunk):
    if "\r\n" in chunk:
        return chunk.split("\r\n")[1]
    else:
        return chunk

while True:
    data = ssl_sock.recv(4096).decode()

    print(data)

    if "\r\n\r\n" in data and start_chunking is False:
        start_chunking = True
        temp = data.split("\r\n\r\n")[1]
        login_resp += temp.split("\r\n")[1]

    elif start_chunking:
        if data.startswith("0\r\n"):
            print("reached the end")
            break
        login_resp += parseChunk(data)

过早地print已“到达终点”,文件的很大一部分仍然缺失。据我所知,当服务器完成发送块时,它会发送“最终块”,即0\r\n,表示不会再发送更多数据?显然不是这样。服务器也没有发送Content-Length标头,所以我不知道期望的字节数。

非常感谢任何帮助或见解。谢谢你的时间。如果需要更多信息,请在downvoting之前告知我们。感谢。

0 个答案:

没有答案