2016-10-27 14 views
0

短いバージョン:POST、GET、およびDELETEにリクエストモジュールを使用できますか?単純なPOST、GET、およびDELETEをPythonで実装する方法

私はPinterest REST APIを使用しようとしています。 (Pinterest API Explorer

私は単純なルートに行き、oauthで手動で認証トークンを手に入れました。基本的には、特定のURLにPOST、GET、DELETEを行う方法を知る必要があります。その後、jsonを返します。

実際には、3つのAPI関数、承認されたユーザーのフォロワー(GET)、ユーザーのフォロー(POST)、ユーザーのフォロー解除(DELETE)の3つだけが必要です。私が必要としている唯一のパラメータは、私が手動で手に入れた私のaccess_tokenです。

これは単純な問題のようですが、約5つのPython Pinterest APIラッパーがありますが、いずれも完了せず、一部は完全に機能しません。私はpycurl、httplib、および要求モジュールを見てきました。彼らはGETのための簡単なメソッドを持っているように見えますが、POSTやDELETEの方が複雑になります。スーパーシンプルでなければならないようです(POST/GET/DELETE /など)、URL、パラメータセットをとる関数なので、なぜそれがより複雑なのでしょうか?それが簡単なのであれば、これらのAPIラッパーが理論上、APIのすべての関数の3つのパラメーター(3番目のパラメーターの配列)を持つ関数を呼び出すのと同じくらい簡単でなければならないため、 。要求のPythonパッケージで

は、この機能はRequestMethodsクラスの下にあります:私は除いてすべてを理解よう デフ要求(自己、メソッド、URL、フィールド=なし、ヘッダ=なし、** urlopen_kw)

が見えますヘッダーと** urlopen_kwがありますが、変数なしで正しく動作するはずです。

誰かが私を正しい方向に向けることができれば幸いです。 docsから

+0

短いバージョンへの回答:はい。 –

答えて

0

ここでは、要求を使用してPUT要求を行うための一例である:あなたのケースでは

import urllib.request 
DATA = b'some data' 
req = urllib.request.Request(url='http://localhost:8080', data=DATA,method='PUT') 
with urllib.request.urlopen(req) as f: 
    pass 
print(f.status) 
print(f.reason) 

方法は 'POST' になり、 '削除' または君が好きなものならなんでも。

さらに複雑なリクエストを作成する場合は、httplib2ライブラリのguideをご覧ください。読む価値があります。