-2

我是我现在公司的后端开发人员。当前端团队遇到问题时,他们有时会使用 Chrome devtool 的“copy request as curl”功能,将有问题的 curl 请求发送给我。我在想,如果我可以编写一个脚本来以各种方式转换这些卷发——移除、添加或调整参数等等,那将是一件很酷的事情。

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

我试图解析的卷曲示例:

curl http://myhost?myarg=ACTIVE&myotherarg=1 -H Pragma: no-cache -H 来源: http://localhost:5000 -H Accept-Encoding: gzip, deflate, sdch -H Accept-Language: en-US ,en;q=0.8 -H 授权:令牌 xxxxxxxx1234567 -H 接受: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 引用者: http://localhost:5000/projects/7/overview-all/active/ --compressed

4

2 回答 2

0

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

特别是对于 cURL,标志还不错:尝试使用 Pythonargparse库(此处的教程)编写一个简单的解析器,该解析器将命令本身分离并检查requests库以建立与其正常关键字参数相对应的字典格式.

于 2016-02-09T02:32:13.103 回答
0

事实证明,python 模块shlex可以完成大部分繁重的工作。

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

于 2016-06-04T03:54:22.993 回答