簡単にテストインタフェースを投稿することがパイソン、インタフェースリファレンス闊歩

図に示すように闊歩は、インターフェース上のポストを見つけます。また、最初の現在のインターフェイスの効果を検証するために、それを試してみることができます上記闊歩

テストの後、パラメータが右のトークンで、あなたは正しい結果を照会することができ、次のとおりです。

{
"ID":283、
"名前": ""、
"ORDERBY":2、
"PAGENO":1、
"pageSizeを":20、
"queryTotal":真
"sortString": "ID"
}

次に、我々は、Pythonを経由して、このインタフェースを確認します。

初めはこのように書かれています:

import requests
if __name__ == '__main__':
url = 'http://XXX.XX/api/item/v1/attribute/search'
attributeNamePageSearchModel = {
"id": 283,
"name": "",
"orderBy": 2,
"pageNo": 1,
"pageSize": 20,
"queryTotal": true,
"sortString": "id"
}
header={"Authorization": "f0fe02af-dca6-47e7-8f09-07c53d2bfc61"}
response=requests.post(url,data =attributeNamePageSearchModel,headers=header)
print(attributeNamePageSearchModel)
print(response.url)
print(response.text)
发现"queryTotal": true, 这一行的true有红色报错;尝试改成'true'和1,运行结果依然不对;在Swagger上面也改成'true'和1,相同报错;后经过搜索,知道python里面需要改成True才行
改成True之后运行,不是应该有的结果:

那一定是我们参数不对,接着探索,发现需要加上Content-Type;于是修改header一行:

header={"Authorization": "f0fe02af-dca6-47e7-8f09-07c53d2bfc61","Content-Type":"application/json"}
再运行,发现还是上述无效请求。。em,继续看,是不是json格式的问题,于是试着转化下,header上面加一行,同时上面还需要import json:
#python数据类型转换为json类型(json.dumps())
attributeNamePageSearchModel = json.dumps(attributeNamePageSearchModel)
再运行,ok,是想要的结果:

备注:上述有2条语句其实有2种写法,1或2都可以:

1.

attributeNamePageSearchModel = json.dumps(attributeNamePageSearchModel)
response=requests.post(url,data =attributeNamePageSearchModel,headers=header)
或者2.
response = requests.post(url, json=attributeNamePageSearchModel, headers=header)

总结:

1.json编码的格式几乎和python语法一致,略有不同的是:True会被映射为true,False会被映射为false,None会被映射为null,元组()会被映射为列表[];

所以想要在post请求中使用data关键字来传递json格式的字符串,首先得把dict转为string(用到json.dumps());

或者也可以直接使用json关键字直接传递,在传递时会自行进行编码为string类型(不需要json.dumps())

おすすめ

転載: www.cnblogs.com/hellomaster/p/11285159.html