婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Python接口自動化之淺析requests模塊post請求

Python接口自動化之淺析requests模塊post請求

熱門標簽:ai電銷機器人源碼 湛江智能外呼系統(tǒng)廠家 ai電話機器人哪里好 外呼并發(fā)線路 西藏房產(chǎn)智能外呼系統(tǒng)要多少錢 長沙高頻外呼系統(tǒng)原理是什么 地圖標注審核表 宿遷星美防封電銷卡 百度地圖標注沒有了

在上一篇Python接口自動化測試系列文章:Python接口自動化之淺析requests模塊get請求,介紹了requests模塊、get請求及響應結(jié)果詳解。接下來介紹requests模塊中的post請求的使用。

一、源碼解析

def post(url, data=None, json=None, **kwargs):
    r"""Sends a POST request.
    :param url: URL for the new :class:`Request` object.
    :param data: (optional) Dictionary, list of tuples, bytes, or file-like
        object to send in the body of the :class:`Request`.
    :param json: (optional) json data to send in the body of the :class:`Request`.
    :param \*\*kwargs: Optional arguments that ``request`` takes.
    :return: :class:`Response Response>` object
    :rtype: requests.Response
    """
 
    return request('post', url, data=data, json=json, **kwargs)

post請求參數(shù)解析:

url: 請求的url,必填;

data: 選填,請求參數(shù);

json: 選填,請求參數(shù);

kwargs:選填,可以傳入headers、cookies等。

二、data、json區(qū)別

小伙伴們看完可能有點懵逼,data和json有啥區(qū)別呀,什么時候傳入data,什么時候傳入json。

舉個栗子:

data = {
    "name":"vivi"
}
print(type(data))

聰明的小伙伴立即搶答了,打印的是字典類型。

那如果想把字典轉(zhuǎn)換為json字符串呢,需要引用json模塊。

import json
data = {
    "name":"vivi"
}
data = json.dumps(data)
print(type(data))

敲黑板:

  • 不管json是str還是dict,如果不指定headers中的content-type,默認為application/json;
  • data為dict時,如果不指定content-type,默認為application/x-www-form-urlencoded,相當于普通form表單提交的形式;
  • data為str時,如果不指定content-type,默認為application/json。

重點來了,post請求參數(shù)到底是傳data還是json,這時候我們要看請求頭里的content-type類型(具體參照接口文檔,沒有接口文檔的抓包)。

如果請求頭中content-type為application/json, 為json形式,post請求使用json參數(shù)。

 

如果請求頭中content-type為application/x-www-form-urlencoded,為表單形式,post請求時使用使用data參數(shù)。

三、form形式發(fā)送post請求

當前接口的請求類型為application/x-www-form-urlencoded。

# 導入requests模塊
import requests
# 請求url
url = "http://127.0.0.1:8000/user/login"
# 請求參數(shù)
payload = {
    "mobilephone":"1530272****",
    "pwd":"123456"
}
# form表單形式,參數(shù)用data
res = requests.post(url, data=payload)
print(res.text)

響應結(jié)果為:

{
    "status": 1,
    "code": "10001",
    "data": null,
    "msg": "登錄成功"
}

四、json形式發(fā)送post請求

當前接口的請求類型為application/json。

# 導入requests模塊
import requests
# 請求的url地址
url = 'http://127.0.0.1:8000/user/login/'
# 請求頭
headers = {"content-type":"application/json"}
# payload 為傳入的參數(shù)
payload = {"username":"vivi","password":"123456","remember_me":"false"}
# json形式,參數(shù)用json
res = requests.post(url,json=payload,headers=headers)
print(res.text)

響應結(jié)果為:

無響應???

問題來了,如果請求類型為application/json,我偏要傳入data參數(shù)呢?

先按我們正常思維走一波:

import requests
payload = {"username":"vivi","password":"123456","remember_me":"false"}
header = {"content-type":"application/json"}
url = 'http://127.0.0.1:8000/user/login/'
res = requests.post(url,data=payload,headers=header)
print(res.text)

響應結(jié)果:請求錯誤

{"code":400,"data":[],"message":"Input error"}

請求類型為application/json,如果想用data傳參,需要將字典類型數(shù)據(jù)轉(zhuǎn)換為json字符串

import requests
import json
payload = {"username":"vivi","password":"123456","remember_me":"false"}
header = {"content-type":"application/json"}
# 字典轉(zhuǎn)換為json串
data = json.dumps(payload)
url = 'http://127.0.0.1:8000/user/login/'
res = requests.post(url,data=data,headers=header)
print(res.text)

本文主要講解post源碼,data、json參數(shù)應用場景及實戰(zhàn)。接口使用的本地服務,如果大家想練手,可以使用公司項目或網(wǎng)上項目自行實戰(zhàn)。

本文主要講解post源碼,data、json參數(shù)應用場景及實戰(zhàn)。接口使用的本地服務,如果大家想練手,可以使用公司項目或網(wǎng)上項目自行實戰(zhàn),希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • Python函數(shù)式編程中itertools模塊詳解
  • Python編程functools模塊創(chuàng)建修改的高階函數(shù)解析
  • Python編程itertools模塊處理可迭代集合相關函數(shù)
  • Python中re模塊常用方法總結(jié)分析
  • 解析Python擴展模塊的加速方案
  • python中的zip模塊
  • Python接口自動化淺析logging日志原理及模塊操作流程
  • 詳解Python模塊化--模塊(Modules)和包(Packages)
  • Python接口自動化之淺析requests模塊get請求
  • 一篇文章帶你了解python標準庫--time模塊
  • freeswitch開源通信 python模塊介紹

標簽:海南 普洱 漯河 大同 南平 寧夏 盤錦 林芝

巨人網(wǎng)絡通訊聲明:本文標題《Python接口自動化之淺析requests模塊post請求》,本文關鍵詞  Python,接口,自動化,之,淺析,;如發(fā)現(xiàn)本文內(nèi)容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Python接口自動化之淺析requests模塊post請求》相關的同類信息!
  • 本頁收集關于Python接口自動化之淺析requests模塊post請求的相關信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 富阳市| 高邑县| 绥芬河市| 枝江市| 贞丰县| 霍州市| 莫力| 舒兰市| 额济纳旗| 化隆| 邳州市| 河东区| 永仁县| 宜昌市| 五寨县| 晋宁县| 鲁甸县| 清涧县| 萝北县| 绵阳市| 改则县| 富宁县| 临高县| 晋城| 高要市| 象州县| 炉霍县| 五莲县| 乌兰浩特市| 彩票| 青浦区| 绵竹市| 凌海市| 珠海市| 郓城县| 蒲江县| 集贤县| 伊宁市| 项城市| 黄平县| 阿克陶县|