Python POST字符串数据
我需要发布字符串数据,我可以使用curl而不是python的requests模块来完成 卷曲示例:Python POST字符串数据,python,python-requests,Python,Python Requests,我需要发布字符串数据,我可以使用curl而不是python的requests模块来完成 卷曲示例: curl -XPOST "https://hostname/apisyntax?queryparams" -d "key1=value&key2=value&key3=vlaue&key4[]=value" 这是一个不起作用的python示例: data_api = '"key1='+str(value1)+'&key2='+str(value2)+'&
curl -XPOST "https://hostname/apisyntax?queryparams" -d "key1=value&key2=value&key3=vlaue&key4[]=value"
这是一个不起作用的python示例:
data_api = '"key1='+str(value1)+'&key2='+str(value2)+'&key3='+str(value3)+'&key4[]='+str(value4)+'"'
call\u api=requests.post(url,data=data\u api)
我没有收到任何python错误,但目标服务器报告找不到key4的错误
请帮助理解python代码的问题所在 将参数作为
json
发送,而不是data
,最终代码应该如下所示-
data_api = {'key1': str(value1),
'key2': str(value2),
'key3': str(value3),
'key4': [str(value4)]}
call_api = requests.post (url, json=data_api)
将参数作为
json
发送,而不是data
,您的最终代码应该如下所示-
data_api = {'key1': str(value1),
'key2': str(value2),
'key3': str(value3),
'key4': [str(value4)]}
call_api = requests.post (url, json=data_api)
我注意到key4
中有一个不一致的地方,这正是给您带来麻烦的地方
试一试
即在键4[]
我注意到key4
中有一个不一致的地方,这正是给您带来麻烦的地方
试一试
例如,在
key4[]
之后删除[]
服务器上是否存在key4?是的,因为使用curl可以很好地工作。为什么Python请求中的&key4[]
有[]
而其他键没有?服务器上是否存在key4?是的,因为使用curl可以很好地工作。为什么&key4[]
在您的Python请求中,当其他键没有时,您有了[]
吗?我知道键4中有[]听起来很奇怪,但语法是这样的。我尝试过使用son和从字符串中删除[],但都会导致相同的错误。这是nagios的API,语法非常严格。这就是为什么我要说,当我使用curl-d选项传递相同的东西时,它可以工作,但不使用python。我尝试过使用son和从字符串中删除[],但都会导致相同的错误。这是nagios的API,语法非常严格。这就是为什么我说,当我使用curl-d选项传递相同的东西时,它可以工作,但不使用python。
data_api = '"key1='+str(value1)+'&key2='+str(value2)+'&key3='+str(value3)+'&key4='+str(value4)+'"'
call_api = requests.post (url, data=data_api)