curl到python请求的转换

2024-04-26 05:22:35 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

(请注意,我使用了一个假的url,但该命令确实可以处理真实的url)

接收端(在烧瓶中运行)执行以下操作:

@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

我觉得我错过了一些小东西,任何帮助都将不胜感激。

谢谢你


Tags: testcomjsonhttpurldatawwwmatch
3条回答

救你一命

更简单的方法是:

  1. 开放邮递员
  2. 点击左上方的“导入”标签。
  3. 选择Raw Text选项并粘贴cURL命令。
  4. 点击导入,您将在您的邮递员建设者的命令!

希望这有帮助!

学分:Onkaar Singh

http://curl.trillworks.com有一个很棒的Python请求转换帮助器的开源cURL。它不是完美的,但有助于很多时间。尤其是转换Chrome的“Copy as cURL”命令。如果需要以编程方式进行转换,还有一个node library

cURL from Chrome

您的服务器需要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

相关问题 更多 >