requests類庫詳解

2021-10-08 08:04:27 字數 3069 閱讀 8793

1、python3.6 安裝pip3 install requests

2、引用 import requests

3、http請求總結:

1)session/requests使用方式,利用session 會回種cookie資訊,會話保持測關聯介面

import requests

session = requests.session(

)#會話保持測關聯介面

r = session.get(url=

'')print

(r.status_code)

2)直接傳送,每次新建立鏈結

r2 = requests.get(url=

'')print

(r2.status_code)

3)傳送各種型別的http請求

1、get請求 無引數

r = requests.get( url =

'')print

(r.text)

2、get請求 有引數 url位址列後面 ?k=v&k1=v1

params =

r = requests.get(url=

'',params=params)

print

(r.text)

print

(r.status_code)

host =

''headers =

r=requests.post(url=host+

'/getinfo'

,headers=headers, data=

)print

(r.text)

host =

''headers =

xml =

'''<?xml version="1.0" encoding="utf-8"?>

string

'''r = requests.post(url=host+

'/getinfo'

, headers=headers, data=xml)

print

(r.text)

print

(r.status_code)

host =

':8000'

headers =

r = requests.post(url= host +

'/get/'

, headers=headers, json=

)print

(r.text)

6、post請求 正文格式 muilt-part ,form表單,file 不要加content-type

postman可以看到content-type = multipart/form-data

1

)上傳走表單

files =

res=requests.post(url=

':8000/uploadfile/'

,files=files)

print

(res.text)```

```python

2res = requests.get(url=

':8000/export/?xx=2&***=222'

)with

open

('./test.csv'

,'wb'

)as f:

for chunk in res.iter_content(

1024):

f.write(chunk)```

7、關於session的使用

#1. 重定向禁止 allow_redirects=false,才可以取到cookie

第乙個請求,取到對應的cookie

headers =

res = requests.post(url=

':9000/login/'

, headers=headers,data=

, allow_redirects=

false

)token = res.cookies[

'token'

]第二個請求使用

headers=

"content-type":,

"cookie"

:"token="

+token}

r=requests.post(url=

':9000/get/'

,headers=headers,json=

)print

(r.json(

))

#2、單token認證 login在響應裡返token

第乙個請求,取到對應的token

headers =

r = requests.post(url=

':9000/login'

, headers=headers,

json=

)token = r.json()[

'token'

]第二個請求使用

r2 = requests.get(url=

':9000/info'

, headers=

)print

(r2.text)```

8、超時 預設等3秒

#介面測試中如何減少誤報率:加timeout 失敗重試機制

```python

for i in

range(0

,3):

try:

r = requests.get(url=

':9000/info'

, timeout=3)

break

except

:print

('失敗重試'

)else

:raise exception(

'失敗三次,介面異常'

)

Python的Requests庫詳解

方法 說明requests.request 構造乙個請求,用來支撐以下基礎方法 requests.get 獲取html網頁的主要方法,對應於http的get requests.head 獲取html網頁頭資訊的方法,對應於http的head requests.post 向html網頁提交post請求...

請求庫之requests庫

安裝 pip install requests get,delete,post 本質都是呼叫request函式 ret requests.get print ret.status code 響應狀態碼 print ret.text 響應體,轉成了字串 print ret.content ret re...

Requests庫的入門

windows平台下,以管理員模式執行cmd方法 說明requests.requests 構造乙個請求,支撐以下各方法的基礎方法 requests.get 獲取html網頁的主要方法,對應於http的get requests.head 獲取網頁頭資訊的的方法,對應於http的head request...