Reputation: 558
Is there a way to make a request using the PATCH
HTTP method in Python?
I tried using httplib, but it doesn't accept PATCH as method param.
Upvotes: 22
Views: 25129
Reputation: 635
It is incredibly simple with httplib2:
import httplib2
http = httplib2.Http()
http.request("http://www.google.com", "PATCH", <patch content>)
It supports Python 2.3 or later (including 3.x) and works beautifully!
Upvotes: 2
Reputation: 8846
With Requests, making PATCH requests is very simple:
import requests
r = requests.patch('http://httpbin.org/patch')
Upvotes: 25
Reputation: 5420
Seems to work in 2.7.1 as well.
>>> 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
Upvotes: 16
Reputation: 3050
I tried this in Python 3, and it seemed to work (but I don't have a server handy that supports the PATCH
request type):
>>> 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
I'm assuming that the HTTP 405
is coming from the server and that it is "not allowed".
By the way, thanks for showing me the cool PATCH method in HTTP.
Upvotes: 4