使用Python调用Sheety的Put/Post接口时出现400错误请求问题
问题分析与解决
你的代码存在核心错误:使用params参数传递请求体数据,而Sheety API要求JSON数据放在请求体中,应改用json参数。
错误原因
requests.put方法里,params参数用于传递URL查询参数,而非请求体的JSON数据。你当前的代码会把params_sheety的数据拼接到URL末尾,而非作为JSON payload发送,导致Sheety无法识别正确的请求格式,返回400错误。
修正后的代码
import requests SHEETY_URL = "https://api.sheety.co/gfhgfhjfdghjgfjf/flightDeals/prices/5" header = { "Content-Type": "application/json" } params_sheety = { "price": { "iataCode": "PLN" } } # 将params替换为json参数,传递请求体数据 response_sheety = requests.put(url=SHEETY_URL, json=params_sheety, headers=header) print(response_sheety) print(response_sheety.json())
逻辑验证
Postman能成功是因为你在Postman中将JSON数据放在了**请求体(Body)**的raw格式中,而之前的Python代码错误地用URL参数方式传递数据。修正后使用json参数,requests会自动将数据序列化为JSON并放入请求体,同时正确匹配Sheety API的格式要求。
内容的提问来源于stack exchange,提问作者Svit
相关产品推荐
相关产品推荐

