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