我有一个由邮递员生成的http请求:
GET http://google.com/ HTTP/1.1
cache-control: no-cache
User-Agent: PostmanRuntime/7.3.0
Accept: */*
Host: google.com
accept-encoding: gzip, deflate
Connection: keep-alive
我正在通过python中的套接字从客户端接收这些类型的http请求,我想将其发送到其指定的url。
我熟悉请求库,但是考虑到客户端可以发送任何类型的http请求这一事实,分解请求并重新构建请求似乎效率不高。
是否有任何简便方法将请求直接发送到其网址?
先谢谢您
答案 0 :(得分:1)
显然,实现此目的的一种方法是使用注释中提到的TCP套接字,可以这样完成:
server_socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
port = 80
try:
server_socket.connect((url,port))
server_socket.send(str.encode(body)) # encoding needed for streaming in bytes
except socket.error as e:
print(str(e))
sys.exit(1)
作为旁注,URL不得包含“ http://”或“ https://”。如果是这样,则会引发错误