我需要在python中使用HTTP PUT上传一些数据到服务器。从我对urllib2文档的简要阅读来看,它只执行HTTP POST。有没有办法在python中做一个HTTP PUT ?
当前回答
在过去,我使用过各种python HTTP库,我最喜欢的是请求。现有的库具有非常有用的接口,但是对于简单的操作来说,代码可能会太长。请求中的基本PUT如下所示:
payload = {'username': 'bob', 'email': 'bob@bob.com'}
>>> r = requests.put("http://somedomain.org/endpoint", data=payload)
然后,您可以使用以下命令检查响应状态代码:
r.status_code
或者这样回答:
r.content
请求有很多语法糖和快捷方式,会让你的生活更容易。
其他回答
import urllib2
opener = urllib2.build_opener(urllib2.HTTPHandler)
request = urllib2.Request('http://example.org', data='your_put_data')
request.add_header('Content-Type', 'your/contenttype')
request.get_method = lambda: 'PUT'
url = opener.open(request)
在过去,我使用过各种python HTTP库,我最喜欢的是请求。现有的库具有非常有用的接口,但是对于简单的操作来说,代码可能会太长。请求中的基本PUT如下所示:
payload = {'username': 'bob', 'email': 'bob@bob.com'}
>>> r = requests.put("http://somedomain.org/endpoint", data=payload)
然后,您可以使用以下命令检查响应状态代码:
r.status_code
或者这样回答:
r.content
请求有很多语法糖和快捷方式,会让你的生活更容易。
你可以使用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)
这在python3中做得更好,并在stdlib文档中进行了记录
urllib.request.Request类获得一个方法=…参数。
一些示例用法:
req = urllib.request.Request('https://example.com/', data=b'DATA!', method='PUT')
urllib.request.urlopen(req)
您应该看看httplib模块。它应该允许您发出任何类型的HTTP请求。
推荐文章
- 有没有办法在python中做HTTP PUT
- “foo Is None”和“foo == None”之间有什么区别吗?
- 类没有对象成员
- Django模型“没有显式声明app_label”
- 熊猫能自动从CSV文件中读取日期吗?
- 在python中zip的逆函数是什么?
- 有效的方法应用多个过滤器的熊猫数据框架或系列
- 如何检索插入id后插入行在SQLite使用Python?
- 我如何在Django中添加一个CharField占位符?
- 如何在Python中获取当前执行文件的路径?
- 我如何得到“id”后插入到MySQL数据库与Python?
- super()失败,错误:TypeError "参数1必须是类型,而不是classobj"当父不继承对象
- Python内存泄漏
- 我能在服务器端应用程序(PHP、Ruby、Python等)上读取URL的哈希部分吗?
- 实现嵌套字典的最佳方法是什么?