我有一个java webservice,如果登录成功则必须返回响应
服务器端方法的返回行是
return new Response(new InfoSessionJson(newKey, is), null, id);
要获得响应,我尝试使用代码
HttpResponse response = mClient.execute(httppost);
HttpEntity entity = response.getEntity();
InputStream is = entity.getContent();
if(response != null){
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
StringBuilder sb = new StringBuilder();
String line = null;
loggato=true;
try {
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
System.out.println("The response is "+sb.toString());
但输出打印返回apache错误
我试图打印
的输出HttpEntity entity = response.getEntity();
InputStream is = entity.getContent();
直接用
System.out.print(entity);
System.out.print(response);
和这个印刷品:
org.apache.http.conn.BasicManagedEntity@40575ac8 org.apache.http.message.BasicHttpResponse@40574a00
错误在哪里?
我无法正确解析响应或问题出现在???
之前webservice方法有这个fim
@Webservice(paramNames = {"email", "password", "stayLogged", "idClient"},
public Response startSession(String email, String password, Boolean stayLogged, String idClient)
我发送了一个带有
的jsonStringEntity stringEntity = new StringEntity(jsonObject.toString());
httpost.setEntity(stringEntity);
httpost.setHeader("Accept", "application/json");
httpost.setHeader("Content-type", "application/json");
发送的json对象是
{"method":"startSession","params":[{"email":"test.web@yahoo.it","password":"1234","idClient":"ANDROID","stayLogged":"1"}]}
web服务适用于iOS应用程序,但不适用于我的Android应用程序,
我在这个帖子中描述的过程中的错误在哪里???
我希望有人可以帮助我。
答案 0 :(得分:1)
我应该使用代码
stringEntity.setContentEncoding(HTTP.UTF_8);
将编码模式设置为UTF, 有了这个,服务器接受json请求并给出正确的响应
答案 1 :(得分:0)
尝试:System.out.println("The response is "+sb.toString());
。
line
。
答案 2 :(得分:0)
我有几乎完全相同的代码,它对我来说很好,也许你发送的请求有问题。查看响应状态代码以检查错误:
status = response.getStatusLine();
status_code = status.getStatusCode();
服务器端可能存在一些错误,导致您获得空500响应等。