requests中的http连接
前言
最近的学习内容中涉及到服务端和客户端的数据传输。主要的背景是我要从服务端获取数据,进行进一步的处理。前期看了一些关于Socket中TCP连接的方法,同样也可以进行通信。但这里的服务端使用的是HTTP,所以在获取服务端的数据时,这里还是使用的是requests中的http连接。
一、安装 requests
首先,确保已经安装了 requests 库。如果还没有安装,可以通过 pip 安装,此处连接清华镜像源:
pip install requests -i https://pypi.tuna.tsinghua.edu.cn/simple
二、发送 HTTP 请求
导入 requests 库后,使用 requests 发送 HTTP 请求就非常简单了。主要其提供的方法 get()、post()、put()、delete() 来发送请求。
- get():用于获取URL链接中的数据
- post():用于向指定资源提交数据,请求服务器进行处理
- put():用于更新资源,向指定资源位置上传其最新内容
- delete():用于请求服务器删除指定的资源
本处是在服务端获取数据,所以使用get()。
import requests
# 发送 GET 请求
response = requests.get('http://yoururl/get')
# 打印响应内容
print(response.text)
response.text便是传输的数据内容,内部一般是str格式的。想要获取到其中具体的数据,可使用json.loads,将原始数据转成字典格式,注意原始数据的编码格式。
data = json.loads(response.content.decode('utf-8'))
data就是原始数据的字典格式。
三、响应对象
- response.status_code:HTTP 响应状态码,用于检查是否连接成功,当状态码在200-299之间为连接成功了。
- response.headers:响应头,是服务器响应客户端请求时,随响应体一起发送的一系列键值对,提供了关于响应的额外信息,如内容类型、长度、服务器信息、编码方式等。
- response.text:响应体的文本内容
- response.json():如果响应体是 JSON 格式,这个方法会将其解析为 Python 字典
- response.content:包含从服务器接收到的未经任何修改或解码的二进制数据,需要进行解码
完整代码
import requests
import json
# 连接的URL
url = "http://yoururl/get"
try:
response = requests.get(url)
response.raise_for_status()
print(response.text)
except requests.exceptions.HTTPError as err:
print(f"HTTP error occurred: {err}")
# 处理重试请求异常
except requests.exceptions.RequestException as e:
# 处理连接请求异常
print(f"An error occurred: {e}")
data = json.loads(response.content.decode('utf-8'))
print("Retrieved data:", data)
原文地址:https://blog.csdn.net/qq_42591591/article/details/140662907
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!