Postman调用Shoonya QuickAuth API发送jData请求报错,求正确构造方法
问题:Shoonya QuickAuth API Postman请求报错"jData is not valid json object"
我尝试通过Postman向Shoonya的QuickAuth API发送请求,该API接受的请求示例如下:
curl https://api.shoonya.com/NorenWClientTP/QuickAuth \ -d "jData={ \"apkversion\": \"1.0.0\", \"uid\": \"TRST\", \"pwd\": \"s3cur3Id\", \"factor2\": \"31-08-2017\", \"imei\": \"134243434\", \"source\": \"API\"}"
当我通过Postman发送JSON请求时,收到错误提示:
Invalid Input : jData is not valid json object
我已将curl导入Postman,它自动生成了相关输入参数,但仍无法正确识别jData的值,似乎jData被当作字符串而非JSON对象。请问该请求存在什么问题?如何构造包含jData对象的JSON请求?
解决方案
问题根源
原curl请求采用的是x-www-form-urlencoded表单格式提交数据,并非纯JSON格式。你用Postman发送纯JSON请求时,API无法识别这种格式——它期望的是表单参数jData,其值为一个JSON字符串。此外,导入curl时Postman可能对转义的JSON处理不当,导致jData内容不符合有效JSON对象的要求。
正确构造请求的两种方式
方式一:表单格式提交(与原curl一致,推荐)
- 在Postman中新建
POST请求,填入URL:https://api.shoonya.com/NorenWClientTP/QuickAuth - 切换到
Body标签,选择x-www-form-urlencoded类型 - 添加参数
jData,值填入未转义的完整JSON对象:{ "apkversion": "1.0.0", "uid": "TRST", "pwd": "s3cur3Id", "factor2": "31-08-2017", "imei": "134243434", "source": "API" } - 直接发送请求即可,Postman会自动处理表单编码,无需手动转义引号。
方式二:纯JSON格式提交(需API支持,谨慎尝试)
部分API可能接受直接发送JSON主体,但根据原curl示例,该API更适配表单格式。若要尝试:
- 新建
POST请求,填入目标URL - 切换到
Body标签,选择raw并设置格式为JSON - 将原jData内的内容作为请求主体(无需包裹jData键):
{ "apkversion": "1.0.0", "uid": "TRST", "pwd": "s3cur3Id", "factor2": "31-08-2017", "imei": "134243434", "source": "API" } - 设置请求头
Content-Type为application/json后发送。若API不支持此方式,仍会报错,建议优先使用方式一。
内容的提问来源于stack exchange,提问作者rjcode
相关产品推荐
相关产品推荐

