gpt4 book ai didi

python - 有没有办法通过给定的请求格式文本来初始化 HTTP 请求?

转载 作者:行者123 更新时间:2023-12-05 06:12:27 26 4
gpt4 key购买 nike

我有一个 GET 请求格式的文本:


GET /40x.jpg HTTP/1.1\r\n\
Host: ns.pb.cachecn.net\r\n\
Connection: keep-alive\r\n\
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8\r\n\
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1636.2 Safari/537.36\r\n\
Accept-Encoding: gzip,deflate,sdch\r\n\
Accept-Language: zh-CN,zh;q=0.8\r\n\
\r\n"

我们知道在 Python 中有三种模块方式来创建 HTTP 请求:

urllib2/urllib
httplib/urllib
Requests

但是是否可以通过导入给定的文本来创建 HTTP 请求?我的意思是使用 string = GET 请求文本,并使用这个变量 string 来创建 HTTP 请求。不是用很多步骤,因为区分request headerrequest body比较复杂。

最佳答案

库(urllib2/urllib、httplib/urllib、Requests)被封装以方便高级使用。

如果你想发送格式化的 HTTP 请求文本,你应该考虑 Python 套接字库。

有一个套接字例子:

import socket

get_str = 'GET %s HTTP/1.1\r\nHost: %s\r\nUser-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.125 Safari/537.36\r\nAccept: */*\r\n\r\n'%("/", "www.example.com")

def get(hostname, port):
sock = socket.socket()
sock.connect((hostname, port))

b_str = get_str.encode("utf-8")
sock.send(b_str)

response = b''
temp = sock.recv(4096)
while temp:
temp = sock.recv(4096)
response += temp

return response.decode(encoding="utf-8")

res = get(hostname="www.example.com", port=80)
print(res)

关于python - 有没有办法通过给定的请求格式文本来初始化 HTTP 请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63629337/

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