2013-07-09 7 views
5

HI私はジャージーRESTクライアントを使用してREST POST APIを呼び出そうとしています。 APIは、ドキュメントがある URL: METHOD:POST ヘッダー情報: - X-GWS-APP-NAME:XYZ 受け入れ:アプリケーション/ JSONまたはアプリケーション/ xmlのはジャージーRESTクライアントでコンテンツタイプ/エンコーディングを設定する

マイサンプルジャージーのクライアントコードが

です
Client client = Client.create(); 

WebResource resource=client.resource(URL); 

resource.accept(javax.ws.rs.core.MediaType.APPLICATION_XML); 
resource.type(javax.ws.rs.core.MediaType.APPLICATION_XML); 
resource.type("charset=utf-8"); 
ClientResponse response = resource.post(ClientResponse.class,myReqObj); 

私はこのコードのバリエーションを過去1週間から試していますが、動作しません。この点に関する助けがあれば、非常に感謝しています。

答えて

7

難しいのは、WebResourceメソッドがBuilderデザインパターンに従い、要求の完全なコンテキストを設定するためのさらなるメソッドを呼び出すときに、保持して保持する必要があるBuilderオブジェクトを返すことです。

resource.acceptを実行すると、格納されていないものが返されるため、resource.typeを実行すると失われ、最後の呼び出しだけが有効になります。

通常、すべての基準を1行に設定しますが、出力をローカル変数に保存することもできます。

ClientResponse response = client.resource(URL) 
           .accept(MediaType.APPLICATION_XML) 
           .type(MediaType.APPLICATION_XML) 
           .post(ClientResponse.class,myReqObj); 
+2

のように私はあなたが受け入れ、入力線の端部からセミコロンを削除する必要があると思うのアカウントクラスのインスタンスです。 – FrontierPsycho

+0

酷いコピー/ペースト。 :)それは今修正されました。ありがとう! – TheArchitect

+0

あなたは大歓迎です、ありがとうございます:) – FrontierPsycho

1

私はそうです。ここ

Response response = webTarget.request(MediaType.APPLICATION_JSON_TYPE) 
    .accept(MediaType.APPLICATION_JSON_TYPE) 
    .post(Entity.entity(a, "application/json; charset=UTF-8")); 

、「」

@XmlRootElement 
public class account { 
... 
... 
} 
+0

これはジャージー2ですか?それは...珍しいようですが、答えを少し広げることができますか? – Nenotlep

関連する問題