我创建了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);
在这种情况下,我发布的方法向Web服务器发送了2个数据。
@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 但是现在应用程序无法返回对第一种方法的响应。 我怎么得到回应?
答案 0 :(得分:0)
您已经收到了回复:
HttpResponse response = client.execute(request);
由于您已经在使用org.apache.httpcomponents
,因此可以执行以下操作:
String result = EntityUtils.toString(response.getEntity());
之后,您将数据作为字符串,只需按照您的意愿执行即可。
编辑:
更多信息,您的数据位于响应的实体中,这是一个HttpEntity
对象。您可以从InputStream
获取内容并按照您的意愿阅读,我的示例是一个简单的字符串。
答案 1 :(得分:0)
首先,我会用get方法进行注释。然后我会使用Java类,让库将类转换为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;
}