使用JSON将数据从servlet发送到android应用程序

时间:2012-05-22 22:05:52

标签: android json servlets httpclient

晚安,

我正在尝试从用JSON编写的Java数据名称的servlet发送到Android中的应用程序。

不是说我做错了,但是当涉及到移动文本时,会出现一个奇怪的文字。

下面我将介绍代码:

的servlet:

if (opcion.equals("4")){//Devolver nombre, apellidos y DNI de Usuario

        String usuario = request.getParameter("login");
        Usuario user = facade.getUsuarioByLogin(usuario);

        String nombre= user.getNombre();
        String apellidos = user.getApellidos();
        String dni = user.getDni();

        System.out.println("El valor de Nombre es"+nombre);


        response.setContentType("application/json");

        JSONObject json = (JSONObject) JSONSerializer.toJSON( nombre );

        //System.out.println("El valor de json"+json.toString());
        out.println(json);

        out.close();
    }

获取JSON的一段Android应用程序代码(我忽略了try catch以使代码更具可读性):

HttpClient cliente = new DefaultHttpClient();

    HttpPost post = new HttpPost (url.toString());


    ResponseHandler<String> handler = new BasicResponseHandler();

    List<NameValuePair> elementos = ele;


        post.setEntity(new UrlEncodedFormEntity(elementos));

    HttpResponse respuesta = null;

        respuesta = cliente.execute(post);


    Log.i("Prueba", "El valor de respuesta es "+respuesta.toString());

我认为respuesta应该有servlet发送给我的JSON,但它返回一个不包含名称的文本

你看到你做错了吗?

问候和感谢

1 个答案:

答案 0 :(得分:0)

您忘了将ResponseHandler传入HttpClient#exeucte()方法。

替换

HttpResponse respuesta = null;
respuesta = cliente.execute(post);
Log.i("Prueba", "El valor de respuesta es "+respuesta.toString());

通过

String respuesta = cliente.execute(post, handler);
Log.i("Prueba", "El valor de respuesta es " + respuesta);