请选择 进入手机版 | 继续访问电脑版

湖南新梦想

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 436|回复: 0

requests

[复制链接]

30

主题

30

帖子

258

积分

中级会员

Rank: 3Rank: 3

积分
258
发表于 2022-6-22 18:49:38 | 显示全部楼层 |阅读模式
1、模拟get请求
importrequestsresponse=requests.get("url主机字符串")
可以使用print(response.content.decode('utf-8')),response.content是二进制模式,可以下载视频之类的,如果想看的话需要decode成utf-8格式。而response.text返回的是Unicode格式,通常需要转换为utf-8格式,否则就是乱码。如果想用text方法并解决乱码问题,可以通过如下代码实现:response.encoding='utf-8'print(response.text)
2、模拟带参数的get请求

importrequests#写法一:response=requests.get("https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET")print(response.content.decode('utf-8'))
写法二:data={'grant_type':'client_credential','appid':'APPID','secret':'APPSECRET'}response=requests.get("https://api.weixin.qq.com/cgi-bin/token",params=data)print(response.content.decode('utf-8'))
上面引用微信公众平台的接口为例,其中APPID和APPSECRET值获取方式是:
(1)、进入微信公众平台开发者文档:https://developers.weixin.qq.com ... arted/Overview.html
(2)、进入开始开发--接口测试号申请菜单,通过微信扫一扫生成测试号3、扫码后,生成appID和appsecret
模拟post请求
接口信息如下:
接口功能:新建用户标签请求方式:
POST接口地址:https://api.weixin.qq.com/cgi-bi ... _token=ACCESS_TOKEN上传数据格式:json数据{"tag":{"name":"广东"}}importrequestsimportjsonurl=“https://api.weixin.qq.com/cgi-bin/tags/create”data={'access_token':'token值'}//token值为之前获取access_token的值info={'tag':{'name':'广东'}}headers={'Content-Type':'application/json'}//发送json数据必带的头部信息response=requests.post(url,params=data,data=json.dumps(info),headers=headers)print(response.content.decode('utf-8'))备注:json.dumps()用于将dict类型的数据转成json格式编码的字符串
响应包括响应行、响应头、响应正文内容,这些返回的响应信息都可以通过Requests模块获取。
这些获取到的响应内容也是接口测试执行得到的实际结果。
获取响应行:r=requests.get(‘https://www.baidu.com’)
print(r.status_code)#响应状态码
print(r.reason)#响应信息
print(r.headers)获取响应头返回的是dict类型,可以继续使用get获取指定的值
获取其它响应信息:
print(r.url)#获取请求地址
print(r.cookies)#获取cookies
print(r.encoding)#获取响应的编码格式
python中,键值对的json数据等同于字典,数据类型的json数据等同于列表
唯一的区别:json数据要使用双引号
import json
import jsonpath
str_01='{"name":"小明","age":20}'  #字符串
json_01=json.loads(str_01)  #把一个json字符串转化成json对象
print(type(str_01))
print(json_01)
import requests
response=requests.get(url="https://www.baidu.com/")
print(response.content.decode('utf-8')) #二进制方式返回,decode()解码方法
response=requests.get(url="https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fc-ssl.duitang.com%2Fuploads%2Fblog%2F202107%2F18%2F20210718231716_9fd01.thumb.1000_0.jpeg&refer=http%3A%2F%2Fc-ssl.duitang.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=auto?sec=1658366903&t=5a68ab081a96edb916515c751989a5ff")
imgs=Image.open(BytesIO(response.content))  #返回二进制的图片对象
imgs.save('test.png')


import requests
response=requests.get(url='https://www.baidu.com/')
print(response.headers)#指定响应信息
print(response.encoding)  #python以encoding中的值作为响应正文的解码标准
response.encoding='utf-8'
response.encoding=response.apparent_encoding
print(response.apparent_encoding)
print(response.text)





回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|湖南新梦想 ( 湘ICP备18019834号-2 )

GMT+8, 2023-9-22 09:30 , Processed in 0.045037 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表