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

Python中如何使用httplib发送带有Headers的HTTP请求

发布时间:2024-01-11 20:19:07

在python中使用httplib发送带有Headers的HTTP请求的步骤如下所示:

1. 导入httplib模块。

import httplib

2. 创建httplib.HTTPConnection对象,并指定要连接的服务器地址和端口。

conn = httplib.HTTPConnection("www.example.com", 80)

3. 定义请求头(headers),包括各种HTTP请求头信息。常用的请求头有User-Agent、Accept、Content-Type等。

headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:2.0b7pre) Gecko/20100930 Firefox/4.0b7pre",
    "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
    "Content-Type": "application/x-www-form-urlencoded"
}

4. 发送HTTP请求,调用conn.request方法,传入请求方法(GET或POST)、请求路径和请求体。请求方法和请求路径可以从URL中解析得到。

conn.request("GET", "/index.html", headers=headers)

5. 获取响应,调用conn.getresponse方法。

response = conn.getresponse()

6. 获取响应状态码和响应体。

status = response.status
body = response.read()

7. 关闭连接。

conn.close()

下面是一个完整的示例,演示了如何使用httplib发送带有Headers的HTTP请求,并打印出响应的状态码和响应体。

import httplib

# 创建HTTP连接
conn = httplib.HTTPConnection("www.example.com", 80)

# 定义请求头
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:2.0b7pre) Gecko/20100930 Firefox/4.0b7pre",
    "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
    "Content-Type": "application/x-www-form-urlencoded"
}

# 发送HTTP请求
conn.request("GET", "/index.html", headers=headers)

# 获取响应
response = conn.getresponse()

# 获取响应状态码
status = response.status

# 获取响应体
body = response.read()

# 打印响应状态码和响应体
print("Status code:", status)
print("Response body:", body)

# 关闭连接
conn.close()

以上示例演示了如何使用httplib发送带有Headers的HTTP请求,并获取响应的状态码和响应体。用户可以根据自己的实际需要修改请求方法、请求路径、请求头等相关参数,以及处理响应的方式。