我可以使用urllib进行获取或发布请求,但如何进行DELETE-和PUT请求呢?
答案 0 :(得分:7)
requests库可以处理POST,PUT,DELETE和所有其他HTTP方法,并且比urllib,httplib及其变体要小得多。
答案 1 :(得分:4)
您可以使用以下内容覆盖get_method:
def _make_request(url, data, method):
request.urllib2.Request(url, data=data)
request.get_method = lambda: method
然后你传递“DELETE”作为方法。
This回答了解详情。
答案 2 :(得分:1)
该方法在urlopen调用
中隐式设置当您提供数据参数时,将使用POST。
urllib.request.urlopen(url, data=None[, timeout])
由于这一行,我认为不可能对urlib使用DELETE HTTP方法:
<强> Request.get_method()强>
返回一个字符串 指示HTTP请求方法。 这仅对HTTP有意义 请求,目前总是返回 'GET'或'POST'。
答案 3 :(得分:1)
PUT请求可以由httplib2
执行答案 4 :(得分:1)
http://twistedmatrix.com/documents/current/web/howto/client.html
如果您希望使用客户端使用HTTP进行扭曲,我建议您检查一下。它演示了如何使用代理类轻松地发出请求。
答案 5 :(得分:1)
答案 6 :(得分:0)
urllib库中的默认HTTP方法是POST和GET:
def get_method(self):
"""Return a string indicating the HTTP request method."""
default_method = "POST" if self.data is not None else "GET"
return getattr(self, 'method', default_method)
但是我们可以覆盖这个get_method()函数来获取DELETE请求:
req = urllib.request.Request(new_url)
req.get_method = lambda: "DELETE"