2016-09-01 18 views
2

WLPによって提供されるJAXRSクライアントAPI(lib:javax.ws.rs.client。*)を使用してREST WebサービスをテストするためにHttpクライアントを作成する必要があります。 POSTメソッドを使用してString Request(JSONメッセージ)を送信し、String Response(JSONメッセージ)を受信する必要があります。誰かが同様のJavaコード(クラス)を持っていて、このタスクを実行するために必要なインポートがある場合は、感謝します。Websphere LibertyプロファイルでJAXRSクライアントAPI(POSTリクエスト)を使用するHttpクライアント

PS:私は、Javaクラスをコーディング始めたが、私は応答を取得する方法を知りませんでした:私が使用している

Client client = ClientBuilder.newClient(); 
WebTarget myResource = client.target("http://example.com/webapi"); 
.... 

Websphere Liberty profile 16.0.0.2, 
jaxrs-2.0 [1.0.0] 
jaxrsClient-2.0 [1.0.0] 
IDE : RDz 

答えて

3

あなたはほとんどそこにいます。リクエストデータを 'Entity'のインスタンスにフォーマットし、それをサービスに送信するだけです。

以下は、非常に単純なJAX-RSサービスでこれを行うコード例です。

import javax.ws.rs.client.Client; 
    import javax.ws.rs.client.ClientBuilder; 
    import javax.ws.rs.client.Entity; 
    import javax.ws.rs.client.WebTarget; 
    import javax.ws.rs.core.MediaType; 

    .... 

    // Set up our client and target our JAX-RS service 
    Client client = ClientBuilder.newClient(); 
    WebTarget target = client.target("http://localhost:9081/example.jaxrs/test/SimpleService"); 

    // Build our request JSON into an 'Entity'. Replace 'myData' with your JSON 
    Entity<String> data = Entity.entity("MyData", MediaType.APPLICATION_JSON_TYPE); 

    // Then send a post request to the target service 
    String result = target.request(MediaType.APPLICATION_JSON_TYPE).post(data, String.class); 
+0

こんにちはマイケル、答えるためのおかげで私はまだ警告やエラーを持っている:[WARNING] HTTPレスポンスコードは{HTTPの [WARNING]インターセプタを破損していることが表示されます。 //9.458.365.147:11491/webservice}WebClientが例外をスローしました。今すぐ巻き戻します。 メッセージを送信できませんでした。 –

+0

それは働いている!マイケルありがとう –

0

次のことを試してみてください、

import javax.ws.rs.client.Client; 
import javax.ws.rs.client.ClientBuilder; 
import javax.ws.rs.client.Invocation; 
import javax.ws.rs.client.WebTarget; 
import javax.ws.rs.core.MediaType; 
import javax.ws.rs.core.Response; 

Client client = ClientBuilder.newClient(); 
WebTarget myResource = client.target("http://example.com/webapi"); 
Invocation.Builder invocationBuilder = myResource.request(MediaType.TEXT_PLAIN_TYPE); 
Response getResponse = invocationBuilder.get(); 
if (getResponse != null && getResponse.getStatus() == 200) { 
    String responseString = getResponse.readEntity(String.class); 
} 
関連する問題