栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python入门笔记(一)requests post报参数解析异常错误

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python入门笔记(一)requests post报参数解析异常错误

req = requests.post调用

req.statu_scode == 200,但是仍然报错:

{"code":"404","message":"参数解析异常,请检查方法的参数是否有效"}

通过postman调用ok,代码直接执行也ok:

 修改为json格式调用,报错:

data_pay =[{

    'userId': '867857567567568678',

    'orderCode': '999010188371',    

    'paymentType': '1',

    'paymentMethod': 'ICBC_SBERBANK'

}]

PS E:Python> & C:/Users/AppData/Local/Programs/Python/Python38/python.exe e:/Python/Test/OrderGui/OrderStatus.py
200
{"info":"Duplicate data","resultCode":2000}

一开始以为'ContentType': 'application/json'格式不对应导致,添加后:

resp_web = requests.post(pay_url,data=payload,headers=headers) 还是报错。

最后排查原因为json格式错误导致,键值对使用了单引号。这里贴一下json的基础知识:

JSON 格式规则
  1. 复合类型的值只能是数组或对象,不能是函数、正则表达式对象、日期对象。
  2. 简单类型的值只有四种:字符串、数值(必须以十进制表示)、布尔值和null(不能使用NaN, Infinity, -Infinity和undefined)。
  3. 字符串必须使用双引号表示,不能使用单引号。
  4. 对象的键名必须放在双引号里面。
  5. 数组或对象最后一个成员的后面,不能加逗号。

修改后,调用ok。

 

pay_url = 'https://rpcos.test.hihonor.com/invoke/com.huawei.vmall.oms.dubbo.api.OMSInterfaceForBalanceKey.updatePaymentStatus'
headers = {
        'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36',
        'ContentType': 'application/json'
    }
data_pay =[{
	"userId": "867857567567568678",
	"orderCode": "999010188371",    
	"paymentFee": "0",
	"paymentAmount": "1000",
	"paymentNo": "99910188375",
	"paymentTime": "2021-10-18 11:22:00 +0800",
	"paymentStatus": "1",
	"paymentType": "1",
	"paymentMethod": "ICBC_SBERBANK"
}]

payload="[{rnt"userId": "867857567567568678",rnt"orderCode": "999010188371",    rnt"paymentFee": "0",rnt"paymentAmount": "7300",rnt"paymentNo": "48010188375",rnt"paymentTime": "2021-10-20 11:22:00 +0800",rnt"paymentStatus": "1",rnt"paymentType": "1",rnt"paymentMethod": "ICBC_SBERBANK"rn}]"
resp_web = requests.post(pay_url,json=data_pay,headers=headers)
resp_web1 = requests.post(pay_url,data=payload,headers=headers)
print(resp_web.status_code)
print(resp_web.text)
print(resp_web1.status_code)
print(resp_web1.text)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/348386.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号