requests中的http连接

文章目录


前言

最近的学习内容中涉及到服务端和客户端的数据传输。主要的背景是我要从服务端获取数据,进行进一步的处理。前期看了一些关于Socket中TCP连接的方法,同样也可以进行通信。但这里的服务端使用的是HTTP,所以在获取服务端的数据时,这里还是使用的是requests中的http连接。


一、安装 requests

首先,确保已经安装了 requests 库。如果还没有安装,可以通过 pip 安装,此处连接清华镜像源:

python 复制代码
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()。

python 复制代码
import requests  
  
# 发送 GET 请求  
response = requests.get('http://yoururl/get')  
  
# 打印响应内容  
print(response.text)

response.text便是传输的数据内容,内部一般是str 格式的。想要获取到其中具体的数据,可使用json.loads,将原始数据转成字典格式,注意原始数据的编码格式

python 复制代码
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:包含从服务器接收到的未经任何修改或解码的二进制数据,需要进行解码

完整代码

python 复制代码
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)
相关推荐
便利店10245 分钟前
企业远程办公如何打通内网?网络层隧道与封装直觉
运维·服务器·网络·vpn·隧道
砚凝霜1 小时前
软考网络工程师|第 6 章 网络安全基础、攻击、等保完整备考笔记
网络·笔记·web安全
运维行者_1 小时前
网络监控与ITSM集成:从告警到工单,实现运维自动化闭环
开发语言·网络·分布式·后端·架构·flask·php
数据知道1 小时前
SSRF 漏洞实战:内网探测、云元数据窃取一条龙
网络·安全·网络安全
我爱cope1 小时前
【计算机网络 | 物理层3:数字编码与调制:比特如何变成可传输的信号?】
网络·学习·计算机网络
潘志宏_ZHPAN2 小时前
智能体互联网:原理、架构与开发实践—项目6:智能体安全与生命周期管理
网络·安全
147API2 小时前
AI 图片编辑接口报 400 怎么排查?先读错误体,再查参数、图片与 mask
网络·人工智能
戴西软件2 小时前
戴西CAxWorks.VPG车辆工程仿真软件技术解析(上)——安全仿真体系的自动化构建
运维·网络·数据库·人工智能·算法·安全·自动化
砚凝霜3 小时前
软考网络工程师|第 6 章 应用层安全协议、防火墙完整备考笔记
网络·笔记·安全
M158227690553 小时前
SG-CANFiber-120 (S) 环网 CAN 光纤中继器,解决工业 CAN 远距离通信难题
网络