Ricardo Augusto
Ricardo Augusto

Reputation: 558

How do I make a PATCH request in Python?

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

Answers (4)

Andaris
Andaris

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

Kenneth Reitz
Kenneth Reitz

Reputation: 8846

With Requests, making PATCH requests is very simple:

import requests

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

Upvotes: 25

Travis Jensen
Travis Jensen

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

Chris
Chris

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

Related Questions