+-
将curl转换为python请求
我正在尝试将curl中的以下工作请求转换为 python请求(使用请求 http://docs.python-requests.org/en/v0.10.7/).

curl --data 'query={"tags":["test1","test2"]}' http://www.test.com/match

(请注意,我使用了一个假网址,但该命令可以使用真正的网址)

接收端(在Flask中运行)执行此操作:

@app.route("/match", methods=['POST'])
def tagmatch():
    query = json.loads(request.form['query'])
    tags = query.get('tags')
    ... does stuff ...
    return json.dump(stuff)

在curl(7.30)中,在Mac OS X(10.9)上运行上面的命令正确返回使用标记查询过滤的json列表.

我的python脚本如下,它返回一个400错误的请求.

import requests

payload = {"tags":["test1", "test2"]}
# also tried  payload = 'query={"tags":["test1","test2"]}'
url = 'http://www.test.com/match'

r = requests.post(url, data=payload)

if __name__=='__main__':

     print r.text

我觉得我错过了一些小的东西,任何帮助都会受到赞赏.

谢谢

最佳答案
您的服务器期待JSON,但您没有发送它.尝试这个:

import requests
import json

payload = {'query': json.dumps({"tags":["test1", "test2"]})}
url = 'http://www.test.com/match'

r = requests.post(url, data=payload)

if __name__=='__main__':
    print r.text
点击查看更多相关文章

转载注明原文:将curl转换为python请求 - 乐贴网