如何在Python中使用http.client发送HTTP请求
发布时间:2024-01-19 21:20:49
在Python中,可以使用http.client模块来发送HTTP请求。下面是使用http.client模块发送HTTP GET和POST请求的示例代码。
1. 发送GET请求:
import http.client
conn = http.client.HTTPSConnection("www.example.com") # 创建与目标服务器的连接
conn.request("GET", "/") # 发送GET请求
res = conn.getresponse() # 获取响应对象
data = res.read() # 读取响应内容
print(data.decode()) # 打印响应内容
conn.close() # 关闭连接
在上面的示例中,首先使用htttp.client.HTTPSConnection创建与目标服务器的连接,然后调用request方法发送GET请求(HTTP协议默认使用GET请求),接着调用getresponse方法获取响应对象,最后通过read方法读取响应内容并打印。
2. 发送POST请求:
import http.client
import urllib.parse
conn = http.client.HTTPSConnection("www.example.com")
payload = urllib.parse.urlencode({"param1": "value1", "param2": "value2"}) # 构造POST请求参数
headers = {"Content-type": "application/x-www-form-urlencoded", "Accept": "text/plain"} # 设置请求头
conn.request("POST", "/", payload, headers) # 发送POST请求
res = conn.getresponse()
data = res.read()
print(data.decode())
conn.close()
在上面的示例中,首先使用urllib.parse.urlencode方法构造POST请求的参数字符串,然后使用{"Content-type": "application/x-www-form-urlencoded", "Accept": "text/plain"}设置请求头,接着调用request方法发送POST请求,再调用getresponse方法获取响应对象,最后通过read方法读取响应内容并打印。
以上就是使用http.client模块发送HTTP GET和POST请求的示例。需要注意的是,在实际使用中,可能还需要处理各种HTTP响应状态码、处理异常情况等。
