如何以编程方式使用python脚本将Curl命令转换为python请求
我正在尝试使用python脚本将curl命令转换为python请求。我可以找到uncurl模块,并可以使用它成功地转换几个curl命令。但是我面临的问题是如何使我的脚本对所有curl命令都通用。以下问题阻碍了我的工作。我正在尝试用python编写实用程序,它将从文本文件中获取curl命令,并将命令逐个转换为python请求如何以编程方式使用python脚本将Curl命令转换为python请求,python,curl,Python,Curl,我正在尝试使用python脚本将curl命令转换为python请求。我可以找到uncurl模块,并可以使用它成功地转换几个curl命令。但是我面临的问题是如何使我的脚本对所有curl命令都通用。以下问题阻碍了我的工作。我正在尝试用python编写实用程序,它将从文本文件中获取curl命令,并将命令逐个转换为python请求 uncurl不接受GET/POST等命令类型 Curl命令选项如-u、-X等被拒绝 对于删除请求,我应该如何使用uncurl curl-v-k-H“内容类型:applicat
-u
、-X
等被拒绝李>
import uncurl
command = 'curl -v -k -H "Content-Type: application/json" -H "sync_id: 00000000-0000-0000-0000-000000000001" -H "sync_token: NhbSzPhbtFlZ9Gm1nLr5f8e0WLGQitG4o00jb006m5Vcs00XVqzRdHcFtyv4YOzd5S02Z3x1iR5OWQINgLP2Og" -H "instance_id: instance_id" -X GET 'example.com'
print uncurl.parse(command)
我已经去掉了标签和卷曲选项,它们给了我如下的例外
def stripTags(command):
'''Strip off the unwanted tags from the curl command'''
print '\nCommand is *********************************', command
command = command.replace('-X', '')
command = command.replace('-k', '')
command = command.replace('-v', '')
command = command.replace(' \'', ' \"')
command = command.replace('\' ', '\" ')
command = command.replace('\'', '\"')
command = command.replace(' GET ', '')
command = command.replace(' POST ', '')
command = command.replace(' PUT ', '')
command = command.replace(' POST ', '')
command = command.replace(' DELETE ', '')
print '\nStripped string is =============', command
return command
当我使用下面的curl命令进行转换时,出现了一个异常
'curl-v--代理用户“00dcf6e7-4513-4e46-bbaf-ef4cac8f8d47”:“XUmh8pIG68Zo”-X GET“example.com”--代理127.0.0.1:8080-k'
这里的-U
选项很麻烦。同样,我也观察到了其他一些选项的例外情况。因此,我不确定是否正确使用uncurl。
当我从curl.trillworks.com使用在线转换器时,所有curl命令都被转换。
你能告诉我如何将curl命令转换成python请求吗
****:-我可以使用“runcurl”包发送curl命令。根据我的理解,uncurl包有发送curl请求的限制,runcurl通过提供“execute”方法来桥接curl请求。我使用了下面的代码来实现这一点。
导入runcurl
cmd=“curl-v-u”00dcf6e7-4513-4e46-bbaf-ef4cac8f8d47:“XUmh8pIG68Zo”-X GET“-k”
#去掉像-k,-v,-X这样的curl选项,GET会导致runcurl抛出异常。
尝试:
code=runcurl.execute(命令)
除:
代码=400
//将失败案例写入某个文件以供进一步参考
如前所述,我必须去掉curl支持的选项,如'-k','-v'。在上面的curl命令中,身份验证选项与'-u'选项一起提供。但是runcurl抛出了一个异常。
我在这一点上寻求帮助。我的期望是,对于curl支持的必需选项,“runcurl”不应该出错。例如:-'-u'选项。我错过什么了吗?有没有更好的方法来处理上面的curl命令?
注意:-我试图避免在代码中使用“subprocess.call()”来调用curl命令。这是否有帮助?(如果你想得到严肃的答案,请发布一些代码;展示你所做的尝试,并提出一个关于你所处困境的精确问题)。谢谢hiro。我已经检查过你提到的网站了。curl命令正在上述联机转换器上转换。我在这里看到的是python中转换python请求中curl命令的机制/代码。以下是我到目前为止所做的事情的细节,以及我在什么时候陷入困境的细节。我指的是代码(a),请阅读下面的内容。curl-v-k-H“内容类型:application/json”-H“sync_id:00000000-0000-0000-0000-00000001”-H“sync_令牌:nhbszphbtflz9gm1nlr5f8e0wlgqitg4o00jb006m5vcs00xvqzrdhcftyv4yozd5s022z3x1ir5owqinglp2og”-“实例id:instance_id”-X获取“”
import uncurl uncurl.parse(命令)