PATCH
PythonでHTTPメソッドを使用してリクエストを行う方法はありますか?
httplibを使用してみましたが、メソッドparamとしてPATCHを受け入れません。
Requestsを使用すると、 PATCH リクエストを作成するのは非常に簡単です。
import requests
r = requests.patch('http://httpbin.org/patch')
2.7.1 でも動作するようです。
>>> 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
PATCH
私はこれを Python 3 で試しましたが、動作しているように見えました (ただし、リクエスト タイプをサポートするサーバーが手元にありません)。
>>> 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
HTTP 405
はサーバーからのものであり、「許可されていない」と想定しています。
ところで、HTTPのクールなPATCH メソッドを見せてくれてありがとう。
httplib2を使用すると、非常に簡単です。
import httplib2
http = httplib2.Http()
http.request("http://www.google.com", "PATCH", <patch content>)
私は、PATCH サポートを含む専門的な REST フレームワークで httplib2 ライブラリを自分で使用しました。Python 2.3 以降 (3.x を含む) をサポートし、美しく動作します!