request模块(2)

requests 模块发送post请求

post请求 data 参数携带字典
post(url, data=None, json=None, kwargs)
发送一个post请求
参数说明:
url:请求的url
data:传递查询的参数,可以是字典类型,也可以是bytes类型或者是文件对象。
json:传递的json数据
kwargs:可选请求参数
该方法返回一个reponse对象。

#coding=utf-8
import requests
payload = {"key1":"value1","key2":"value2"}#这是个字典
response = requests.post("http://httpbin.org/post",data=payload)
assert response.status_code == 200

print response.url
print response.text

post 请求json 参数携带json字符串

#coding=utf-8
import requests
import json
payload = {"name":"Lucy","sex":"male"}
print type(json.dumps(payload))
response = requests.post("http://httpbin.org/post",json=json.dumps(payload))
#以上把字典转换成json串,但是用data发送json也可以;
#response = requests.post("http://httpbin.org/post",data=json.dumps(payload))

assert response.status_code == 200

print response.url
print response.text

post 请求发送文件对象

#coding=utf-8
import requests

url = "http://httpbin.org/post"
file = {"file":open(r"c:\\1.png","rb")}#字典参数

response = requests.post(url,files=file)

assert response.status_code == 200
print response.status_code
print response.url
#print response.content

post 请求携带头信息

#coding=utf-8
import requests
import json

url = 'http://httpbin.org/post'
payload = {'name': 'Lucy', 'sex': 'male'}

headers = {'content-type': 'application/json'}#字典参数
r = requests.post(url, data = json.dumps(payload), headers = headers)
print r.status_code

requests 模块发送put请求
put(url, data=None, kwargs)
发送一个put请求,和post类似
参数说明:
url:请求的url
data:传递查询的参数,可以是字典类型,也可以是bytes类型戒者是文件对象。
kwargs:可选请求参数
该函数也是返回一个response对象。

response 响应对象

response对象:通过request模块中的各个请求方法后,就会获得一个response对象,在这个response对象中存放着客户端请求后的一些请求信息。
常用方法:
response.status_code
response.headers
response.text #响应正文
response.cookies
response. cookies[‘BAIDUID’] #获取某个cookie 值
response.encoding
response.json() #返回一个字典
r.json()[‘data’][‘country’] #获取字典中的值
response.content

猜你喜欢

转载自blog.51cto.com/13496943/2162222