如何在Python中创建PATCH请求?

时间:2011-07-28 01:02:07

标签: python http patch httplib

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

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

4 个答案:

答案 0 :(得分:22)

使用Requests,制作PATCH requests非常简单:

import requests

r = requests.patch('http://httpbin.org/patch')

答案 1 :(得分:15)

似乎也在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

答案 2 :(得分: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 method

答案 3 :(得分:2)

使用httplib2非常简单:

import httplib2

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

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