将cURL命令转换为Python的urllib2

时间:2011-12-07 09:33:25

标签: python curl urllib2 urllib

家伙!我目前正在使用使用以下cURL行的API:

curl -vF "files[]=@file.zip" "http://s5.example.com/123"

我对使用其他库如pycurl不感兴趣,因为我真的只需要转换一行或两行。我真的很感谢你的帮助!

2 个答案:

答案 0 :(得分:2)

此请求在文件上载字段中发布文件内容。 上传文件的POST请求的http主体很难组装 - 对于普通文本字段,可以将“data =”参数中的字典发送到urllib2.urlopen调用,并且字段将被发布。

但是,文件上传需要使用自定义标头发送复杂的http主体。 我不知道urllib2是否可以做到这一点 - 但是我找到了一个如何使用httplib和mimetypes(这两者都是Python的stdlib)的例子 - 所以你可以选择示例代码并在你的项目中重用它:

http://code.activestate.com/recipes/146306-http-client-to-post-using-multipartform-data/

答案 1 :(得分:2)

urllib模块的 urlopen 方法 ..

语法: urllib2.urlopen(url [,data] [,timeout])

data是指定要发送到服务器的其他内容的字符串

示例:

import urllib
tlds = urllib.urlopen("http://data.iana.org/TLD/tlds-alpha-by-domain.txt").readlines()

此示例显示了一个单行代码,可以通过从iana.org抓取来将所有tld提取到名为tlds的列表中

对于urlopen方法的复杂操作/选项/参数,您可以查看官方文档:http://docs.python.org/library/urllib2.html