2012-05-06 19 views
0

可能性の重複:
CURL alternative in Python書き込みカール

私はJSONレスポンスを返すPythonのスニペットを書き込むしようとしています。カールで、それが動作し、次のようになります。

curl -H 'content-type: application/json' \ 
    -d '' http://example.com/postservice.get_notes 

は、どのように私はcurlコマンドが行うようにJSONオブジェクトを返すPythonでコードを書くことができますか?

答えて

2

正確には模倣これはpycurlです。

import pycurl 
import StringIO  

buf = StringIO.StringIO() 

c = pycurl.Curl() 
c.setopt(c.URL, 'http://example.com/postservice.get_notes') 
c.setopt(c.WRITEFUNCTION, buf.write) 
c.setopt(c.HTTPHEADER, ['Accept-Charset: UTF-8']) 
c.setopt(c.POSTFIELDS, '') 
c.perform() 

json = buf.getvalue() 
buf.close() 

ここcontent-type: application/jsonは、有効なリクエストヘッダではありません。だから、それは必要ではありません。

+0

これは、Webサービスからデータを受け取るための最良のソリューションですか? – Mikael

+0

**ベスト**は相対語です。あなたが文脈や基準を与えない限り、ベストソリューション*はありません。私が提供したソリューションは、コマンドラインの実装と一番よく似ています。両方とも同じライブラリ(カール)を使用します。したがって、彼らはバックエンドで同じコードを実行します。 –