1. 程式人生 > 程式設計 >python 傳送get請求介面詳解

python 傳送get請求介面詳解

簡介

  如果想用python做介面測試,我們首先有不得不瞭解和學習的模組。它就是第三方模組:Requests。 雖然Python內建的urllib模組,用於訪問網路資源。但是,它用起來比較麻煩,而且,缺少很多實用的高階功能。更好的方案是使用

requests。它是一個Python第三方庫,處理URL資源特別方便。檢視其中文官網:http://cn.python-requests.org/zh_CN/latest/index.html英文官網:http://www.python-requests.org/en/master/ 可以看一下它的很多實用的高階功能。

功能特性

Requests 完全滿足今日 web 的需求。

  • Keep-Alive & 連線池
  • 國際化域名和 URL
  • 帶持久 Cookie 的會話
  • 瀏覽器式的 SSL 認證
  • 自動內容解碼
  • 基本/摘要式的身份認證
  • 優雅的 key/value Cookie
  • 自動解壓
  • Unicode 響應體
  • HTTP(S) 代理支援
  • 檔案分塊上傳
  • 流下載
  • 連線超時
  • 分塊請求
  • 支援 .netrc

環境安裝(安裝requests)

  您如果安裝了Anaconda,requests就已經可用了。否則,需要在命令列下通過pip安裝:

pip install requests

  注意:pip很容易就會版本升級,

  方法1:檢測並更新

pip list –outdated

  方法2:

    ♦先解除安裝:

pip uninstall packagename

    ♦在用:easy_install.exe安裝

easy_install.exe pip

python 傳送get請求介面詳解

出現Installing collected packages: idna,chardet,certifi,requests

Successfully installed certifi-2019.3.9 chardet-3.0.4 idna-2.8 requests-2.21.0 說明requests模組安裝成功!

使用requests(get請求無引數param)

1、將安裝好的requests模組匯入後,通過GET訪問一個URL地址的網頁頁面,如:https://www/douban.com

2、這裡的 r 也就是 response,請求後的返回值,可以呼叫 response 裡的 status_code 方法檢視狀態碼

3、狀態碼 200 只能說明這個介面訪問的伺服器地址是對的,並不能說明功能 OK,一般要檢視響應的內容,r.text 是返回文字資訊

看吧!這個就是requests的威力,看起來是不是很神奇很牛逼:

python 傳送get請求介面詳解

使用requests(get請求有引數param)

1、再發一個帶引數的 get 請求,如在豆瓣網搜尋:西遊記,url 地址為:https://www.douban.com/search?q=西遊記

2、請求引數:q=西遊記,可以以字典的形式傳參:{"q": "西遊記"}

3、多個引數格式:{"key1": "value1","key2": "value2","key3": "value3"}

python 傳送get請求介面詳解

這部分最容易犯錯的部分,就是1、豆瓣網址後沒有+/search;2、params錯誤的寫成param

使用request(get獲取響應文字content)

1、豆瓣網首頁如果用 r.text 會發現獲取到的內容有亂碼,因為豆瓣網首頁響應內容是 gzip 壓縮的(非 text 文字)

python 傳送get請求介面詳解

2、如果是在 fiddler 工具亂碼,是可以點選後解碼的,在程式碼裡面可以用 r.content 這個方法,content 會自動解碼 gzip 和 deflate 壓縮(這個就是開始介紹requests的高階功能:自動解碼和自動解壓)

python 傳送get請求介面詳解

附錄response返回的其他資訊

1.response 的返回內容(content)還有其它更多資訊

-- r.status_code #響應狀態碼

-- r.content #位元組方式的響應體,會自動為你解碼 gzip 和deflate 壓縮

-- r.headers #以字典物件儲存伺服器響應頭,但是這個字典比較特殊,字典鍵不區分大小寫,若鍵不存在則返回 None

-- r.json() #Requests 中內建的 JSON 解碼器,requests的方便之處還在於,對於特定型別的響應,例如JSON,可以直接獲取

-- r.url # 獲取 url

-- r.encoding # 編碼格式,requests自動檢測編碼

-- r.cookies # 獲取 cookie

-- r.raw #返回原始響應體-- r.text #字串方式的響應體,會自動根據響應頭部的字元編碼進行解碼

-- r.raise_for_status() #失敗請求(非 200 響應)丟擲異常

小結

用requests傳送get請求的介面,就是這麼簡單!想要學的趕快行動起來,鍵盤敲起來,你可以用自己的部落格園練習一下。

到此這篇關於python 傳送get請求介面詳解的文章就介紹到這了,更多相關python 傳送get請求介面內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!

原文地址:https://www.cnblogs.com/du-hong/p/10557042.html