在requests庫當中,requests請求方法,當發送post/put/delete等帶有請求體的請求時,有json和data2個參數可選。
眾所周知,http請求的請求體格式主要有以下4種:
application/json
applicaiton/x-www-from-urlencoded
multipart/form
application/xml
那么針對以上的請求格式,都分別使用什么參數呢?
接下來一一示例說明。
第一種:application/json
第一步:找到一個application/json請求的接口
第二步:發起json格式的http請求 - 使用json參數且字典類型
第二種:applicaiton/x-www-from-urlencoded
第一步:找到一個application/x-www-from-urlencoded請求的接口
第二步:發起x-www-from-urlencoded格式的http請求 - 使用data參數
具體代碼如下:
第三種:multipart/form
第一步:找到一個multipart/form請求的上傳接口
第二步:發起multipart/form格式的http請求 - 使用data和files參數
完整的requests處理上傳接口
第四種:application/xml
第一步:設計一個xml格式的接口
現用flask設計一個簡單的xml格式的登錄接口,請求參數就是用戶名和密碼。
代碼如下(在本地運行,請先安裝flask庫。將以下代碼放在app.py當中):
from flask import Flask, request, Response
app = Flask(__name__)@app.route('/login', methods=['POST'])
def login():# 獲取請求體中的XML數據xml_data = request.data# 解析XML數據,提取用戶名和密碼try:import xml.etree.ElementTree as ETroot = ET.fromstring(xml_data)username = root.find('username').textpassword = root.find('password').textexcept Exception:# 解析失敗,返回錯誤響應response_xml = '0請求格式錯誤'return Response(response_xml, mimetype='text/xml')# 驗證用戶名和密碼if username == 'python' and password == '1234567890':# 登錄成功,返回成功響應 response_xml = '1成功1001'else:# 登錄失敗,返回失敗響應response_xml = '-1用戶名或密碼錯誤'return Response(response_xml, mimetype='text/xml')if __name__ == '__main__':app.run()
請求的數據xml格式如下:
<login><username>python</username><password>1234567890</password>
</login>
響應的數據xml格式如下:
<response><code>1</code><message>成功</message><userid>1001</userid>
</response>
在本地pycharm中,使用python app.py運行這個服務,
第二步:發起xml格式的http請求 - 使用data參數
data是字符串類型,且是xml格式的數據。
最后感謝每一個認真閱讀我文章的人,禮尚往來總是要有的,雖然不是什么很值錢的東西,如果你用得到的話可以直接拿走:
這些資料,對于【軟件測試】的朋友來說應該是最全面最完整的備戰倉庫,這個倉庫也陪伴上萬個測試工程師們走過最艱難的路程,希望也能幫助到你!?