Python中get、post請求詳解(HTTP請求頭、狀態碼)
我們知道通常瀏覽器支援get與post兩種常見的請求方式,那麼在python當中如何具體實現呢?
GET
首先是get,我們知道get指令比較簡單,通常便是在瀏覽器視窗位址列中使用?xx=xxxxx
那麼在python當中如何實現這個過程呢?
首先我們需要了解requests模組
1)匯入模組
import requests
2)傳送請求
import requests
r = requests.get('https://www.baidu.com') # 最基本的不帶引數的get請求
re = requests.get(url='https://www.baidu.com/s', params={'wd':'python'}) # 帶引數的get請求
這便實現了一個?get請求
3)響應請求
r.encoding #獲取當前的編碼
r.encoding = 'utf-8' #設定編碼
r.text #以encoding解析返回內容。字串方式的響應體,會自動根據響應頭部的字元編碼進行解碼。
r.content #以位元組形式(二進位制)返回。位元組方式的響應體,會自動為你解碼 gzip 和 deflate 壓縮。
r.headers #以字典物件儲存伺服器響應頭,但是這個字典比較特殊,字典鍵不區分大小寫,若鍵不存在則返回None
r.request.headers # 前提是你要在引數裡面寫入了headers
r.status_code #響應狀態碼
r.raw #返回原始響應體,也就是 urllib 的 response 物件,使用 r.raw.read()
r.ok # 檢視r.ok的布林值便可以知道是否登陸成功
#*特殊方法*#
r.json() #Requests中內建的JSON解碼器,以json形式返回,前提返回的內容確保是json格式的,不然解析出錯會拋異常
r.raise_for_status() #失敗請求(非200響應)丟擲異常
POST
與get類似這裡多說一點就是可以傳送json請求
import requests
import json
r = requests.post('https://www.baidu.com', data=json.dumps({'name': 'value'}))
print(r.json())
這裡再比較下請求頭與響應頭
import requests
headers = {
'Referer': 'https://www.csdn.net/',
}
re = requests.get('http://www.baidu.com')
print(re.headers)
print(re.request.headers)
HTTP請求頭
這裡列舉幾個常見的:
'Referer': 當前網頁從哪裡跳轉來
'User-Agent': 瀏覽器代理資訊,
'Accept-encoding': 瀏覽器接收的編碼,
'Location': 跳轉到哪裡,通常是3XX請求
HTTP響應狀態碼
1XX---資訊提示
2XX---成功
3XX---重定向
4XX---客戶端錯誤
5XX---服務端錯誤
會話保持
通常我們想要在請求一次後保持會話這時候我們就需要使用seesion
se = requests.Session()
se.get()
se.post()
相關文章
- SpringMVC中如何傳送GET請求、POST請求、PUT請求、DELETE請求。SpringMVCdelete
- Java Http Get Post 請求工具類JavaHTTP
- 介面請求 (get、post、head 等) 詳解
- 介面請求(get、post、head等)詳解
- HTTP請求方法及響應狀態碼詳解HTTP
- http請求中get和post方法的區別HTTP
- 網站http請求狀態碼網站HTTP
- python傳送HTTP POST請求PythonHTTP
- http請求之get和post的區別HTTP
- HTTP請求頭和響應頭詳解HTTP
- vue 發起get請求和post請求Vue
- get請求和post請求的區別
- 淺談HTTP中GET和POST請求方式的區別HTTP
- Http請求get與post請求方式的各種相關面試總結HTTP面試
- POST與GET請求區別
- Http請求體詳解HTTP
- python3 實現 get 和 post 請求Python
- 4.爬蟲 requests庫講解 GET請求 POST請求 響應爬蟲
- Servlet中request請求Get和Post方法以及亂碼解決Servlet
- HTTP GET請求傳bodyHTTP
- uni-app的POST請求和GET請求APP
- status 返回當前請求的http狀態碼HTTP
- axios 發get,post 請求小結iOS
- get與post的請求區別
- go對get、post請求封裝Go封裝
- java傳送GET和post請求Java
- get,post URL加字尾請求
- 網路通訊5:執行HTTP的GET/POST請求HTTP
- python requests get請求 如何獲取所有請求Python
- Linux curl 命令模擬 POST/GET 請求Linux
- httprequest- post- get -傳送請求HTTP
- file_get_contents傳送post請求
- python做http請求PythonHTTP
- Golang:使用go-resty/resty傳送http請求get和postGolangRESTHTTP
- 關於常用的http請求頭以及響應頭詳解HTTP
- http請求頭個欄位解釋HTTP
- HTTP請求頭與響應頭HTTP
- java post 請求Java