gpt4 book ai didi

python - HTTP/1.1 与 HTTP/1.0 Python 套接字

转载 作者:行者123 更新时间:2023-12-01 00:52:00 24 4
gpt4 key购买 nike

我正在尝试使用 Python 套接字发送和接收 HTTP 数据。但是当我使用 HTTP/1.0 时它可以工作,但是当我使用 HTTP/1.1 时它只是一直等待......

此代码有效

import socket

client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_address = ('httpbin.org', 80)
client_socket.connect(server_address)

request_header = 'GET /ip HTTP/1.0\r\nHost: httpbin.org\r\n\r\n'
client_socket.send(request_header.encode())

response = ''
while True:
recv = client_socket.recv(1024)
if not recv:
break
response += recv

print(response)
client_socket.close()

这不起作用

import socket

client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_address = ('httpbin.org', 80)
client_socket.connect(server_address)

request_header = 'GET /ip HTTP/1.1\r\nHost: httpbin.org\r\n\r\n'
client_socket.send(request_header.encode())

response = ''
while True:
recv = client_socket.recv(1024)
if not recv:
break
response += recv

print(response)
client_socket.close()

如果 HTTP/1.1 是问题所在,那么我如何检测它是否不支持 HTTP/1.1

最佳答案

HTTP/1.1 默认为持久连接。如果您希望服务器在发送响应后关闭连接,则需要发送 Connection: close header 。

request_header = 'GET /ip HTTP/1.1\r\nHost: httpbin.org\r\nConnection: close\r\n\r\n'

关于python - HTTP/1.1 与 HTTP/1.0 Python 套接字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56503595/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com