python di的curl命令

2024-06-02 09:18:57 发布

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

我是我目前公司的后台开发人员。当前端团队遇到问题时,他们有时会使用Chrome devtool的“copy request as curl”特性,并向我发送有问题的curl请求。我在想,如果我能写一个脚本来以各种方式转换这些卷发,比如删除、添加或调整参数等等。在

我认为这里的第一步是将命令解析为更容易使用的东西。我正考虑使用clickdocopt,但没有看到一个简单的命令来执行command line string->;intelligent python object或类似的命令。理想情况下,它不仅适用于这种情况,而且适用于任何有效的Unix命令。有没有一个lib可以轻松做到这一点?或者我需要扩展这些库中的一个吗?还是我最好从头开始写点什么?在

我试图解析的curl示例:

curl http://myhost?myarg=ACTIVE&myotherarg=1 -H Pragma: no-cache -H Origin: http://localhost:5000 -H Accept-Encoding: gzip, deflate, sdch -H Accept-Language: en-US,en;q=0.8 -H Authorization: Token xxxxxxxx1234567 -H Accept: application/json, text/javascript, /; q=0.01 -H Cache-Control: no-cache -H User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.103 Safari/537.36 -H Connection: keep-alive -H Referer: http://localhost:5000/projects/7/overview-all/active/ --compressed


Tags: no命令localhosthttpcache开发人员情况公司
2条回答

在一般情况下,唯一可行的方法是,如果所有Unix命令(或至少您正在使用的子集)的参数和Python对应命令之间的参数转换是一致的。这是极不可能的。在

具体地说,对于cURL来说,这些标志并不是太糟糕:尝试使用Python ^{}库(tutorial here)编写一个简单的解析器,该解析器将分离命令本身,并检查^{}库,以建立一个字典格式,该格式将对应于它的普通关键字参数。在

结果发现python模块shlex可以完成大部分繁重的工作。在

我写了一些代码来处理我的特定用例:https://github.com/JesseAldridge/chrome_to_local_curl

相关问题 更多 >