简单的帖子
from requests import post
foo = post('http://httpbin.org/post', data = {'key':'value'})
将执行简单的 HTTP POST 操作。发布的数据可以是最基本的格式,但是键值对是最普遍的。
头
标题可以查看:
print(foo.headers)
一个示例响应:
{'Content-Length': '439', 'X-Processed-Time': '0.000802993774414', 'X-Powered-By': 'Flask', 'Server': 'meinheld/0.6.1', 'Connection': 'keep-alive', 'Via': '1.1 vegur', 'Access-Control-Allow-Credentials': 'true', 'Date': 'Sun, 21 May 2017 20:56:05 GMT', 'Access-Control-Allow-Origin': '*', 'Content-Type': 'application/json'}
标题也可以在发布之前准备好:
headers = {'Cache-Control':'max-age=0',
'Upgrade-Insecure-Requests':'1',
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36',
'Content-Type':'application/x-www-form-urlencoded',
'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
'Referer':'https://www.groupon.com/signup',
'Accept-Encoding':'gzip, deflate, br',
'Accept-Language':'es-ES,es;q=0.8'
}
foo = post('http://httpbin.org/post', headers=headers, data = {'key':'value'})
编码
编码可以以相同的方式设置和查看:
print(foo.encoding)
'utf-8'
foo.encoding = 'ISO-8859-1'
SSL 验证
默认情况下,请求验证域的 SSL 证书。这可以被覆盖:
foo = post('http://httpbin.org/post', data = {'key':'value'}, verify=False)
重定向
将遵循任何重定向(例如 http 到 https),这也可以更改:
foo = post('http://httpbin.org/post', data = {'key':'value'}, allow_redirects=False)
如果已重定向后期操作,则可以访问此值:
print(foo.url)
可以查看完整的重定向历史记录:
print(foo.history)