2

我需要创建一个 Http 客户端来使用 WLP 提供的 JAXRS 客户端 API(库:javax.ws.rs.client.*)测试 REST Web 服务。我必须使用 POST 方法发送字符串请求(JSON 消息)并接收字符串响应(JSON 消息)。如果有人有类似的 Java 代码(类)和必要的导入来完成这项任务,我将不胜感激。

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
4

2 回答 2

3

您快到了。您需要做的就是将您的请求数据格式化为“实体”实例并将其发送到您的服务。

下面是一些示例代码,它们为一个非常简单的 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);
于 2016-09-01T10:59:57.713 回答
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);
}
于 2016-09-01T14:16:03.733 回答