如何从响应中获取数据

How to get data from response

我已经创建了 2 个 Web 服务并且能够发送一些数据。

利用这三行代码

HttpClient client = HttpClientBuilder.create().build();
HttpGet request = new HttpGet("http://localhost/<appln-folder-name>/method/domethod?data1=abc&data2=xyz");
HttpResponse response = client.execute(request);

在这种情况下,我发布的方法将 2 个数据发送到 Web 服务器。

@Path("/domethod")
    // Produces JSON as response
    @Produces(MediaType.APPLICATION_JSON) 
    // Query parameters are parameters: http://localhost/<appln-folder-name>/method/domethod?data1=abc&data2=xyz
    public String doLogin(@QueryParam("data1") String d1, @QueryParam("data2") String d2){
        String response = "";
        System.out.println("Data: d1="+d1+"; d2="+d2);
        if(checkData(d1, d1)){
            response = Utitlity.constructJSON("tag",true);
        }else{
            response = Utitlity.constructJSON("tag", false, "Error");
        }
    return response;        
    }

System.out 正确工作并打印:d1=abc; d2=xyz 但是现在应用程序无法 return 响应第一种方法。 我怎样才能得到回应?

您已经在此处收到回复:

HttpResponse response = client.execute(request);

并且由于您已经在使用 org.apache.httpcomponents,您可以执行以下操作:

String result = EntityUtils.toString(response.getEntity());

之后您将数据作为字符串,只需用它做您想做的事即可。

编辑: 多一点信息,您的数据在响应的实体中,它是一个 HttpEntity 对象。您可以从那里获取内容作为 InputStream 并根据需要阅读,我的示例是一个简单的字符串。

首先,我会用get方法来注释。然后我会使用 Java Class 并让库为我将 class 转换为 json。

尝试这样做:

@GET
@Path("/domethod")
    // Produces JSON as response
    @Produces(MediaType.APPLICATION_JSON) 
    // Query parameters are parameters: http://localhost/<appln-folder-name>/method/domethod?data1=abc&data2=xyz
    public String doLogin(@QueryParam("data1") String d1, @QueryParam("data2") String d2){
        Response response = new Response();
        System.out.println("Data: d1="+d1+"; d2="+d2);
        if(checkData(d1, d1)){
            //set in response the tag property to true and maybe another property to OK
            response.setTag(true);
            response.setStatus("OK");
        }else{
             //set in response the tag property to false and maybe another property to ERROR
            response.setTag(false);
            response.setStatus("ERROR");
        }
    return response;        
    }