2016-07-19 7 views
0

JAX-RSアプリケーション内の外部ソースに対するJSON APIコールを作成する必要があります。私の研究から、これを行うためには、私はRestClient()を使う必要があります。しかし、私は成功した応答を返すときだけです。ステータスコードが400以外の場合、ボディを解析できません。ここで私は200 statusを取得するときに、コードを作業の例です:Apache Wink Restで本文を受信しませんJAX-RSアプリケーションでクライアントエラーが発生しました

Resource resource = client.resource("https://api.paytrace.com/v1/customer/create"); 
String response = resource 
    .contentType(MediaType.APPLICATION_JSON) 
    .header("Authorization", "Bearer " + accessToken) 
    .accept(MediaType.APPLICATION_JSON) 
    .post(String.class, paytraceJSON); 

私は現在、ちょうどresponseをログアウトが、応答の詳細は体内でエラーをバックアップするとき何を取得しようとしています。これに対処するより良い方法があるので、自分で使用しているサービスAPIのエラーを返すことができますか?

答えて

0

すべてを処理するのにを使用する代わりに、Stringの代わりにClientResponseにキャストを利用できました。何らかの理由で応答が失敗したときに、テキストの代わりにバックエラーが返されます。

JAX-RSアプリケーション内の外部ソースに対するJSON APIコールを作成する必要があります。私の研究では、これを行うためにRestClient()を使う必要があります。しかし、私は成功した応答を返すときだけです。

古い方法:

Resource resource = client.resource("https://api.com"); 
String response = resource 
    .contentType(MediaType.APPLICATION_JSON) 
    .header("Authorization", "Bearer " + accessToken) 
    .accept(MediaType.APPLICATION_JSON) 
    .post(String.class, payload); 
//Parse the String here to turn it into a JSONObject 

新しい方法:私は200件のステータスを取得するときにステータスコードが400以外の何かがここで動作するコードの例を示しますされている場合には、本体を解析することはできません

Resource resource = client.resource("https://api.com/"); 
ClientResponse response = resource.contentType("application/json") 
     .accept("application/json") 
     .header("Authorization", "Bearer " + accessToken) 
     .post(payload); 
JSONObject customerResponseObject = response.getEntity(JSONObject.class); 
関連する問題