python之_requests库学习_1(基础知识)

在自动化测试框架的学习中,除了以selenium+python你的UI自动化框架的编写,还有接口自动化框架的编写,其中requests库则是一个非常需要的python库,且requests库非常强大,目前的爬虫如果用python语言编写也需要用到requests库,下面先来学习语言基础requests库吧
官方文档 :http://www.python-requests.org/en/master/
中文文档:http://cn.python-requests.org/zh_CN/latest/
安装:pip install requests
看着官方文档从基础开始学习
一、发送请求

import requests
r = requests.get('https://github.com/timeline.json')
    
    
  • 1
  • 2
#发送post请求也可采用这种形式
r2 = requests.post("http://httpbin.org/post")
#其它类型的接口也可以采用这种形式
requests.put('url')
request.delete('url)
    
    
  • 1
  • 2
  • 3
  • 4
  • 5

二、传递URL参数
如下可以为url添加参数,只需要在url后添加一个params 参数即可,参数可以为字典类型,同时也可以将列表作为值传入

import requests
payload = {'key1':'value1','key2':'value2'}
r = requests.get("http://httpbin.org/get",params=payload)
print(r.url)
>>http://httpbin.org/get?key2=value2&key1=value1

payload2={'key1':'value1','key2':['value2','value3']}
r2 = requests.get("http://httpbin.org/get",params=payload2)
print(r2.url)#获取请求的url
>>http://httpbin.org/get?key2=value2&key2=value3&key1=value1
    
    
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

三、响应内容

import requests
r = requests.get('https://github.com/timeline.json')
print(r.text) #展示响应的信息
print(r.encoding)#响应编码
    
    
  • 1
  • 2
  • 3
  • 4

1、二进制响应内容(r.content)

import requests
r = requests.get('https://github.com/timeline.json')
print(r.content)
>>b'{"message":"Hello there, wayfaring stranger. If you\xe2\x80\x99re......."}'
    
    
  • 1
  • 2
  • 3
  • 4

2、json响应内容(r.json())

import requests
r = requests.get('https://github.com/timeline.json')
print(r.json())
>>{'notifications_url': 'https://api.github.com/notifications', 'emojis_url': 'https://api.github.com/emojis'}
print(r.raise_for_status)
>><bound method Response.raise_for_status of <Response [200]>>
print(r.status_code)
>>200
    
    
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

注:成功调用 r.json()并不意味着相应请求成功,要检查请求是否成功,请使用 r.raise_for_status() 或者检查 r.status_code 是否和你的期望相同
3、原始响应内容

import requests
r = requests.get('https://github.com/timeline.json',stream=True)
print(r.raw)
print(r.raw.read(50))
    
    
  • 1
  • 2
  • 3
  • 4

在自动化测试框架的学习中,除了以selenium+python你的UI自动化框架的编写,还有接口自动化框架的编写,其中requests库则是一个非常需要的python库,且requests库非常强大,目前的爬虫如果用python语言编写也需要用到requests库,下面先来学习语言基础requests库吧
官方文档 :http://www.python-requests.org/en/master/
中文文档:http://cn.python-requests.org/zh_CN/latest/
安装:pip install requests
看着官方文档从基础开始学习
一、发送请求

import requests
r = requests.get('https://github.com/timeline.json')
  
  
  • 1
  • 2
#发送post请求也可采用这种形式
r2 = requests.post("http://httpbin.org/post")
#其它类型的接口也可以采用这种形式
requests.put('url')
request.delete('url)
  
  
  • 1
  • 2
  • 3
  • 4
  • 5

二、传递URL参数
如下可以为url添加参数,只需要在url后添加一个params 参数即可,参数可以为字典类型,同时也可以将列表作为值传入

import requests
payload = {'key1':'value1','key2':'value2'}
r = requests.get("http://httpbin.org/get",params=payload)
print(r.url)
>>http://httpbin.org/get?key2=value2&key1=value1

payload2={'key1':'value1','key2':['value2','value3']}
r2 = requests.get("http://httpbin.org/get",params=payload2)
print(r2.url)#获取请求的url
>>http://httpbin.org/get?key2=value2&key2=value3&key1=value1
  
  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

三、响应内容

import requests
r = requests.get('https://github.com/timeline.json')
print(r.text) #展示响应的信息
print(r.encoding)#响应编码
  
  
  • 1
  • 2
  • 3
  • 4

1、二进制响应内容(r.content)

import requests
r = requests.get('https://github.com/timeline.json')
print(r.content)
>>b'{"message":"Hello there, wayfaring stranger. If you\xe2\x80\x99re......."}'
  
  
  • 1
  • 2
  • 3
  • 4

2、json响应内容(r.json())

import requests
r = requests.get('https://github.com/timeline.json')
print(r.json())
>>{'notifications_url': 'https://api.github.com/notifications', 'emojis_url': 'https://api.github.com/emojis'}
print(r.raise_for_status)
>><bound method Response.raise_for_status of <Response [200]>>
print(r.status_code)
>>200
  
  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

注:成功调用 r.json()并不意味着相应请求成功,要检查请求是否成功,请使用 r.raise_for_status() 或者检查 r.status_code 是否和你的期望相同
3、原始响应内容

import requests
r = requests.get('https://github.com/timeline.json',stream=True)
print(r.raw)
print(r.raw.read(50))
  
  
  • 1
  • 2
  • 3
  • 4

猜你喜欢

转载自blog.csdn.net/hanli1992/article/details/82425455
今日推荐