我查了几件事,我只是找不到一个正在做我正在做的事。我发现那些很接近,但我似乎无法得到它。
我有这个卷曲声明。成功时返回204,并且工作正常。
# curl -v -H "Content-type: application/json" -X PUT -d '{"latitude":47.629355,"longitude":-122.3794778}' "http://myserver.com/location/private/location"
当我尝试将其转换为Python请求时,它似乎应该如下:
headers = {'Content-type': 'application/json'}
data = {"latitude":'47.629355',"longitude":'-122.3794778'}
r = requests.put("http://myserver.com/location/private/location", headers=headers, data=data)
然而,这是失败并返回400(错误的请求)。所以我的形成方式并不完全正确。
我继续捅它,改变引号等等。但根据我在SO和http://docs.python-requests.org/上所读到的内容,我觉得我做得对。
任何分享的智慧都将受到赞赏。谢谢!
答案 0 :(得分:2)
尝试将data
替换为json.dumps(data)
:
import json
r = requests.put("http://myserver.com/location/private/location", headers=headers, data=json.dumps(data))
答案 1 :(得分:0)
哎呀!!!
发现错误。在卷曲中,我正在路过:
'{"latitude":47.629355,"longitude":-122.3794778}'
在request.put中,我传递了:
{"latitude":47.629355,"longitude":-122.3794778}
我错过了将整个事情整合到我的服务期望中的外部引号。