2010-12-29 24 views
1

私はpycurl "POST"をRESTインターフェース(この場合はNeo4j)に送る方法を理解しようとしています。は、curlからpycurlへの移動を助ける必要があります

私はCURLを経由してそれを行うことができます。

curl -HContent-Type:application/json -X POST -d '"http://localhost:7474/db/data/node/123"' http://localhost:7474/db/data/index/node/persons/name/peter 

...しかし、私はCURLオプションでそれを変換する方法を見つけ出すことはできません。これは私が得た最も近いものですが失敗します。

data = "http://localhost:7474/db/data/node/123" 
headers = {"Content-Type": "application/json"} 
url_dir = "http://localhost:7474/db/data/index/node/persons/name/peter" 

conn = pycurl.Curl() 
c.setopt(pycurl.URL, url_dir) 
c.setopt(pycurl.HTTPHEADER, headers) 

送信するデータはどうしますか?

編集:データ私は可変資格のデータを意味します。 pycurlを使用してデータ(-dオプションに含まれるもの)を送信するにはどうすればいいですか?私はurlencode-ingしようとしましたが、エラーが発生します(明らかに、その型のため)。私はurllib.quote_plus()を試しましたが、それはRESTサービスで400のエラーを引き起こしました。私はGETがうまく動いているので、これが問題だと思う。これらのステートメントを追加は

答えて

3

は助けることがあります。

c.setopt(pycurl.POST, 1) 
c.setopt(pycurl.POSTFIELDS, data) 

詳細はlibcurl tutorialの「HTTP投稿」セクションをご覧ください。

注1:data文字列を二重引用符で囲む必要がある場合は、​​を実行してください。

注2:私はあなたが入力ミスをしたと思う:conn変数はcと呼ばれる必要があります。

+0

ありがとうございます。私はあなたの提案を試みます。また、タイプミスに関しては、それは私の見解であり、2つの異なるソースからペーストした結果でした。 – swasheck

+0

ありがとう!!!! 「注1」は私が必要としていたものでした – swasheck

関連する問題