当前位置:网站首页>requests库访问接口

requests库访问接口

2022-08-10 16:02:00 InfoQ

安装

pip install requests

发送请求

发送 GET 请求

url = '<http://httpbin.org/get>'
resp = requests.get(url )

发送 POST 请求

url = '<http://httpbin.org/post>'
resp = requests.post(url)

指定请求方法

url = '<http://httpbin.org/post>'
resp = requests.request(method='post', url=url)

传输参数

GET 和 POST 都可以传递 URL 参数

params = {&quot;page&quot;: 3}
requests.get(url, params=params)

POST 通过 multipart/form-data 传递参数,GET 请求不可以

data = {&quot;username&quot;: &quot;abc&quot;, &quot;password&quot;: &quot;123456&quot;}
requests.post(url, data=data)

POST 通过 json 传递参数,GET 请求不可以

data = {&quot;username&quot;: &quot;abc&quot;, &quot;password&quot;: &quot;123456&quot;}
requests.post(url, json=data)

获取响应

获取文本

resp.text

获取 json

resp.json()

获取二进制数据

resp.content

它们之间的关系

null

鉴权

session 鉴权

课堂派中就是使用这种方式,登录后获取用户信息不需要手工添加其他的参数了。

null
def login_with_session():
 s = requests.Session()
 login_url = 'https://v4.ketangpai.com/UserApi/login'
 data = {
 &quot;email&quot;: &quot;w3.com&quot;,
 &quot;password&quot;: &quot;ad6&quot;,
 &quot;remember&quot;: &quot;0&quot;
 }
 s.post(login_url, data)

 user_url = 'https://v4.ketangpai.com/UserApi/getUserInfo'
 r = s.get(user_url)
 print(r.text)

也可以手工添加 cookie:

def login():
 url = 'https://v4.ketangpai.com/UserApi/login'
 data = {
 &quot;email&quot;: &quot;wcom&quot;,
 &quot;password&quot;: &quot;456&quot;,
 &quot;remember&quot;: &quot;0&quot;
 }
 r = requests.post(url, data)
 sid = r.cookies.get('PHPSESSID')

 url = '<https://v4.ketangpai.com/UserApi/getUserInfo>'
 r = requests.get(url, cookies={'PHPSESSID': sid})
 print(r.text)

token

def login():
 url = 'http:///login'
 data = {
 &quot;mobile_phone&quot;: &quot;18111112222&quot;,
 &quot;pwd&quot;: &quot;12345678&quot;
 }
 r = requests.post(url, json=data, headers=headers)
 content = r.json()

 member_id = content['data']['id']
 token_type = content['data']['token_info']['token_type']
 token = content['data']['token_info']['token']

 url = f'<http:/{member_id}/info>'
 r = requests.get(url, headers=headers)
 print(r.text)

扩展

  • xml 格式数据请求和响应解析(application/xml)



我是九柄,公众号【 九柄 】,分享软件测试文章、面试、教程资料,欢迎来看看。
原网站

版权声明
本文为[InfoQ]所创,转载请带上原文链接,感谢
https://xie.infoq.cn/article/54e2d5419dd10baebd4c99e5c