2012-03-02 12 views
2

私はJavaからJSONデータのPOSTを実行してJAX-RSをテストしようとしています。Apache Wink RestClientを使用してJSONデータをWebサービスに投稿する方法は?

私はApache Wink 1.0とApache Wink RestClientを使用しています。 docsは、これはあなたがPOSTを行う方法...

RestClient client = new RestClient(); 
Resource resource = client.resource("http://services.co"); 
String response = resource.contentType("text/plain").accept("text/plain").post(String.class, "foo"); 

であると言う...しかし、どのような変更は、POST JSONデータにI作るのですか?

私はこれを試してみました:

JSONObject json = new JSONObject(); 
json.put("abc", 123); 

RestClient client = new RestClient(); 
Resource resource = client.resource("http://services.co"); 
JSONObject response = resource.contentType(MediaType.APPLICATION_JSON).accept(MediaType.APPLICATION_JSON).post(JSONObject.class, json); 

を...しかし、私はPOSTに私はこのエラーで例外を取得していない:「いいえ型クラスnet.sf.json.JSONObjectのライターとメディアタイプapplication/jsonのを」 。

ご意見やご提案は大変ありがとうございます。

ロブ

+0

あなたのコードは、私は、String.class' 'と一緒に' .post'はない期待していること以外の点ではかなり見えます'JSONObject.class'。 – Perception

+0

ありがとうございました。 'String response = resource.content ... post(String.class、json)'に変更され、クライアントは満足しています。しかし、私は新しいサーバーの問題を抱えています。私は新しい質問を追加しています - 助けてください! :)ありがとう! http://stackoverflow.com/questions/9538342/whats-wrong-with-my-simple-json-jax-rs-web-service –

+0

@Perception - あなたのコメントを回答として投稿してください。私はそれを正しいとマークします。 ! –

答えて

1

あなたのコードはかなり正しい、私はポストがStringエンティティで行われることを期待することを除いて見えます。そのように、あなたは変更することがあります。

JSONObject response = resource.contentType(MediaType.APPLICATION_JSON) 
      .accept(MediaType.APPLICATION_JSON).post(JSONObject.class, json); 

へ:

String response = resource.contentType(MediaType.APPLICATION_JSON) 
      .accept(MediaType.APPLICATION_JSON).post(String.class, json); 
+0

これを試してみると、「トークンに構文エラーがあります...」 –

関連する問題