¿Cómo hago una solicitud de PATCH en Python?

¿Hay alguna forma de realizar una solicitud utilizando el método PATCH http en Python?

Intenté usar httplib, pero no acepta PATCH como método param.

Con las solicitudes , hacer solicitudes de PATCH es muy simple:

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

Parece que funciona en 2.7.1 también.

 >>> 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 

Intenté esto en Python 3, y pareció funcionar (pero no tengo un servidor a la mano que admita el tipo de solicitud 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 

Supongo que el HTTP 405 proviene del servidor y que “no está permitido”.

Por cierto, gracias por mostrarme el método PATCH en HTTP.

Es increíblemente simple con httplib2 :

 import httplib2 http = httplib2.Http() http.request("http://www.google.com", "PATCH", ) 

Yo mismo he usado la biblioteca httplib2 en un marco profesional REST que incluye soporte PATCH. ¡Es compatible con Python 2.3 o posterior (incluido 3.x) y funciona a la perfección!