简单的帖子

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)