API调用失败:响应状态400,错误:'请求中缺少params对象
调用API时出现错误:
错误信息是:'请求中缺少参数对象',这是用Python代码写的。以下是代码:
url='https://XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.com/endpoints/generalAPI'
data='''{
"params":{
"startDate":"2024-03-01",
"endDate":"2024-03-31",
"dataSource":"sqcdp-actions",
"filter":{
}
}
}'''
authHeader = {'Authorization': 'Bearer cc686bbb8b6046c5ac52f70561516cc9'}
# response = requests.put(url, headers=authHeader, data=json.dumps(data))
response = requests.put(url, headers=authHeader, data=json.dumps({'params': {'startDate':'2024-03-01', 'endDate':'2024-03-31', 'dataSource': 'sqcdp-actions'}}))
print(response.json())
错误信息:
尝试过以下几种方法:
- 没有使用json.dumps的数据集
- 在数据中使用了变量params
从Azure数据工厂调用时一切正常
1 个回答
1
试试下面的代码
import requests, json
url = 'https://reqres.in/api/users/2'
data = '''{
"params": {
"startDate": "2024-03-01",
"endDate": "2024-03-31",
"dataSource": "sqcdp-actions",
"filter": {
}
}
}'''
data2 = {
"params": {
"startDate": "2024-03-01",
"endDate": "2024-03-31",
"dataSource": "sqcdp-actions",
"filter": {
}
}
}
response1 = requests.post(url, data=data2)
# or
response2 = requests.post(url, data=json.loads(data))
print(response1.json())
print(response2.json())
输出结果:
每当你对一个字符串使用 json.dumps
时,它会像下面这样被发送出去。如果接收端不接受这种格式,就会报错。
""{\n \"params\":{\n \"startDate\":\"2024-03-01\",\n \"endDate\":\"2024-03-31\",\n \"dataSource\":\"sqcdp-actions\",\n \"filter\":{\n \n }\n }\n}"