开发者

How do I make a PATCH request in Python?

开发者 https://www.devze.com 2023-03-23 15:48 出处:网络
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.With Requests, making PATCH requests is ve

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.


With Requests, making PATCH requests is very simple:

import requests

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


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


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.


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!

0

精彩评论

暂无评论...
验证码 换一张
取 消