21

PATCH有没有办法在 Python 中使用 HTTP 方法发出请求?

我尝试使用 httplib,但它不接受 PATCH 作为方法参数。

4

4 回答 4

24

使用Requests,发出PATCH 请求非常简单:

import requests

r = requests.patch('http://httpbin.org/patch')
于 2011-08-18T18:41:40.513 回答
16

似乎也适用于 2.7.1。

>>> import urllib2
>>> request = urllib2.Request('http://google.com')
>>> request.get_method = lambda: 'PATCH'
>>> resp = urllib2.urlopen(request)
Traceback (most recent call last):
 ...
urllib2.HTTPError: HTTP Error 405: Method Not Allowed
于 2012-01-26T18:07:14.707 回答
4

我在 Python 3 中尝试过这个,它似乎可以工作(但我手边没有支持PATCH请求类型的服务器):

>>> import http.client
>>> c = http.client.HTTPConnection("www.google.com")
>>> r = c.request("PATCH", "/index.html")
>>> print(r.status, r.reason)
405 Method Not Allowed

我假设HTTP 405来自服务器并且它是“不允许的”。

顺便说一句,感谢您向我展示了 HTTP 中很酷的PATCH 方法

于 2011-08-11T18:54:27.790 回答
2

使用httplib2非常简单:

import httplib2

http = httplib2.Http()
http.request("http://www.google.com", "PATCH", <patch content>)

我自己在一个包含 PATCH 支持的专业 REST 框架中使用了 httplib2 库。它支持 Python 2.3 或更高版本(包括 3.x)并且运行良好!

于 2012-05-03T17:37:30.523 回答