我需要在python中使用HTTP PUT上传一些数据到服务器。从我对urllib2文档的简要阅读来看,它只执行HTTP POST。有没有办法在python中做一个HTTP PUT ?
当前回答
不久前,我也需要解决这个问题,这样我才能充当RESTful API的客户端。我选择了httplib2,因为除了GET和POST之外,它还允许我发送PUT和DELETE。Httplib2不是标准库的一部分,但是您可以很容易地从奶酪商店获得它。
其他回答
你看过put.py吗?我以前用过。你也可以用urllib修改你自己的请求。
当然,您可以在任何级别上使用现有的标准库,从套接字到调整urllib。
http://pycurl.sourceforge.net/
PyCurl是libcurl的Python接口。
libcurl是一个免费且易于使用的客户端URL传输库,…支持……HTTP PUT”
“PycURL的主要缺点是它相对于libcurl来说是一个相对较薄的层,没有任何漂亮的python类层次结构。这意味着它有一个陡峭的学习曲线,除非你已经熟悉libcurl的C API。”
你可以使用requests.request
import requests
url = "https://www.example/com/some/url/"
payload="{\"param1\": 1, \"param1\": 2}"
headers = {
'Authorization': '....',
'Content-Type': 'application/json'
}
response = requests.request("PUT", url, headers=headers, data=payload)
print(response.text)
您应该看看httplib模块。它应该允许您发出任何类型的HTTP请求。
我还推荐Joe Gregario编写的httplib2。我经常使用这个而不是标准库中的httplib。
推荐文章
- 证书验证失败:无法获得本地颁发者证书
- 当使用pip3安装包时,“Python中的ssl模块不可用”
- 无法切换Python与pyenv
- Python if not == vs if !=
- 如何从scikit-learn决策树中提取决策规则?
- 为什么在Mac OS X v10.9 (Mavericks)的终端中apt-get功能不起作用?
- 将旋转的xtick标签与各自的xtick对齐
- 为什么元组可以包含可变项?
- 如何合并字典的字典?
- 如何创建类属性?
- 不区分大小写的“in”
- 在Python中获取迭代器中的元素个数
- 解析日期字符串并更改格式
- 使用try和。Python中的if
- 如何在Python中获得所有直接子目录