簡單的帖子

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)