最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python使用requests?POST提交一個(gè)鍵多個(gè)值方式

 更新時(shí)間:2022年02月14日 08:43:05   作者:win_turn  
這篇文章主要介紹了python使用requests?POST提交一個(gè)鍵多個(gè)值方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

使用requests POST提交一個(gè)鍵多個(gè)值

問題

在使用POST提交數(shù)據(jù)時(shí),想實(shí)現(xiàn)下面這種情況:

requests.post(url, data={'interests':'football','interests':'basketball'})

用這種方式肯定是錯(cuò)誤的,因?yàn)樽值渲械膋ey是唯一的。

解決方法

使用元組列表

代碼如下:

import requests
url = 'http://httpbin.org/post'
r = requests.post(url, data=[('interests', 'football'), ('interests', 'basketball')])
r.json()['form']

requests庫的post請求4種類型參數(shù)

用python來驗(yàn)證接口正確性,主要流程有:

  • 1 設(shè)置url
  • 2 設(shè)置消息頭
  • 3 設(shè)置消息體
  • 4 獲取響應(yīng)
  • 5 解析相應(yīng)
  • 6 驗(yàn)證數(shù)據(jù)

Content-Type的格式有四種:分別是application/x-www-form-urlencoded(這也是默認(rèn)格式)、application/json、text/xml以及multipart/form-data格式。

1、application/x-www-form-urlencoded數(shù)據(jù)格式

請看代碼:

datas = {'parameter1':'12345','parameter2':'23456'}
r = requests.post('http://example.com',data=datas)
print(r.content)
print(r.status_code)

解說:Reqeusts支持以application/x-www-form-urlencoded數(shù)據(jù)格式發(fā)送post請求,只需要將請求的參數(shù)構(gòu)造成一個(gè)字典,然后傳給requests.post()的data參數(shù)即可。

2、application/json數(shù)據(jù)格式 


application/json格式的請求頭是指用來告訴服務(wù)端post過去的消息主體是序列化后的 JSON 字符串。

請看帶代碼:

url = 'http://www.example/post'
s = json.dumps({'key1': 'value1', 'key2': 'value2'})
r = requests.post(url, data=s)
print (r.text)

區(qū)別:

這里我們可以發(fā)現(xiàn)Requests模擬post請求時(shí),請求頭格式為application/x-www-form-urlencoded與application/json的主要差別在于請求主體的構(gòu)造格式(前者是鍵值對,后者是JSON串),前者直接用字典傳入,后者用json.dumps()函數(shù)將字典轉(zhuǎn)為JSON串即可。

3、text/xml數(shù)據(jù)格式

請看代碼:

xml = """my xml"""
headers = {'Content-Type': 'application/xml'}
requests.post('http://www.example.com', data=xml, headers=headers)

或者把xml作為一個(gè)文件來傳輸:

import requests
def request_ws(request):
with open(archivo_request,"r") as archivo:
? ? request_data = archivo.read()
target_url = "http://127.0.0.1:8000/?wsdl"
headers = {'Content-type':'text/xml'}
data_response = requests.post(target_url, data=request_data, headers=headers)

4、multipart/form-data數(shù)據(jù)格式

除了傳統(tǒng)的application/x-www-form-urlencoded表單,我們另一個(gè)經(jīng)常用到的是上傳文件用的表單,這種表單的類型為multipart/form-data,multipart/form-data主要用于文件上傳,當(dāng)我們使用它時(shí),必須讓 form表單的enctype 等于 multipart/form-data

直接來看一個(gè)請求示例,主要:

請看代碼(實(shí)現(xiàn)上傳本地的test.txt文件):

import requests?
files = {"file": open("C:/Users/Administrator/Desktop/test.txt", "rb")}
r = requests.post("http://httpbin.org/post", files=files)?
print(r.text)

具體請看實(shí)際例子:

import requests
import json
# 設(shè)置URL
url = "http://demo.9meikf.cn/usystem/auto/getAnswer.do"
# 設(shè)置消息頭
headers = {
? ? "Cookie":"JSESSIONID=EA01FF2B025861F39E29712C97F7DF69;CASTGC=TGT-136-bLQMf0CAikK4BGaydOfIeKd6tWpZQEznJ2ZWdcVl9ofI4LiaQb-cas01.example.org",
? ? "Content-Type":"application/json"
? ? }
# 設(shè)置消息體
data = {"companyId":"48622",
? ? ? ? "nodeId":6,
? ? ? ? "question":"不需要",
? ? ? ? "templateId":"c6f5ad67fc2c11e8a11800163e086942"}
# 獲取相應(yīng)
response=requests.post(url,headers=headers,data=json.dumps(data))
print("Status code:",response.status_code)
print(response.text)
# 解析相應(yīng)
info=response.json()
# 驗(yàn)證數(shù)據(jù)
assert str(info['answer'])=='reject'

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • SpringBoot首頁設(shè)置解析(推薦)

    SpringBoot首頁設(shè)置解析(推薦)

    這篇文章主要介紹了SpringBoot首頁設(shè)置解析,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-02-02
  • Python數(shù)據(jù)結(jié)構(gòu)與算法之圖結(jié)構(gòu)(Graph)實(shí)例分析

    Python數(shù)據(jù)結(jié)構(gòu)與算法之圖結(jié)構(gòu)(Graph)實(shí)例分析

    這篇文章主要介紹了Python數(shù)據(jù)結(jié)構(gòu)與算法之圖結(jié)構(gòu)(Graph),結(jié)合實(shí)例形式分析了圖結(jié)構(gòu)的概念、原理、使用方法及相關(guān)操作技巧,需要的朋友可以參考下
    2017-09-09
  • Python封裝zabbix-get接口的代碼分享

    Python封裝zabbix-get接口的代碼分享

    Zabbix?是一款強(qiáng)大的開源網(wǎng)管監(jiān)控工具,該工具的客戶端與服務(wù)端是分開的,我們可以直接使用自帶的zabbix_get命令來實(shí)現(xiàn)拉取客戶端上的各種數(shù)據(jù)。本文為大家分享了Python封裝zabbix-get接口的示例代碼,感興趣的可以了解一下
    2022-07-07
  • python實(shí)現(xiàn)進(jìn)制轉(zhuǎn)化的示例代碼

    python實(shí)現(xiàn)進(jìn)制轉(zhuǎn)化的示例代碼

    本文主要介紹了python實(shí)現(xiàn)進(jìn)制轉(zhuǎn)化的示例代碼,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • python自動(dòng)獲取微信公眾號(hào)最新文章的實(shí)現(xiàn)代碼

    python自動(dòng)獲取微信公眾號(hào)最新文章的實(shí)現(xiàn)代碼

    這篇文章主要介紹了python自動(dòng)獲取微信公眾號(hào)最新文章,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-07-07
  • python實(shí)現(xiàn)定時(shí)提取實(shí)時(shí)日志程序

    python實(shí)現(xiàn)定時(shí)提取實(shí)時(shí)日志程序

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)定時(shí)提取實(shí)時(shí)日志程序,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-06-06
  • Python 3 實(shí)現(xiàn)定義跨模塊的全局變量和使用教程

    Python 3 實(shí)現(xiàn)定義跨模塊的全局變量和使用教程

    這篇文章主要介紹了Python 3 實(shí)現(xiàn)定義跨模塊的全局變量和使用,本文通過實(shí)例代碼相結(jié)合的形式給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-07-07
  • 一文帶你了解Python中Scikit-learn庫的使用

    一文帶你了解Python中Scikit-learn庫的使用

    Scikit-learn是Python的一個(gè)開源機(jī)器學(xué)習(xí)庫,它支持監(jiān)督和無監(jiān)督學(xué)習(xí),本文主要來深入探討一下Scikit-learn的更高級(jí)的特性,感興趣的小伙伴可以了解下
    2023-07-07
  • python和opencv構(gòu)建運(yùn)動(dòng)檢測器的實(shí)現(xiàn)

    python和opencv構(gòu)建運(yùn)動(dòng)檢測器的實(shí)現(xiàn)

    這篇文章主要介紹了python和opencv構(gòu)建運(yùn)動(dòng)檢測器的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • Python使用Qt5實(shí)現(xiàn)水平導(dǎo)航欄的示例代碼

    Python使用Qt5實(shí)現(xiàn)水平導(dǎo)航欄的示例代碼

    本文主要介紹了Python使用Qt5實(shí)現(xiàn)水平導(dǎo)航欄的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03

最新評論

杨浦区| 衡东县| 井陉县| 班戈县| 崇礼县| 木里| 梅河口市| 姚安县| 武清区| 白银市| 抚顺市| 桃园县| 鄂温| 柳河县| 海林市| 娱乐| 正宁县| 昌乐县| 靖州| 正阳县| 辽阳市| 永济市| 红安县| 甘肃省| 普陀区| 新竹县| 勃利县| 定结县| 昌平区| 正镶白旗| 余庆县| 海安县| 丹江口市| 邯郸县| 额济纳旗| 湖南省| 钟山县| 贡觉县| 南郑县| 永平县| 靖远县|