如何从响应中获取数据
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;
}
我已经创建了 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;
}