欢迎访问宙启技术站
智能推送

如何在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响应状态码、处理异常情况等。