无法打印Json-RPC响应

时间:2012-03-03 17:52:03

标签: android json json-rpc

我有一个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)

我发送了一个带有

的json
StringEntity 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应用程序,

我在这个帖子中描述的过程中的错误在哪里???

我希望有人可以帮助我。

3 个答案:

答案 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响应等。