servlet对android设备的响应

时间:2013-10-27 11:00:10

标签: java android json servlets

自从最近几天试图得到这个以来,我处于沟渠中,但是无法取得任何预期的结果。我会尽力让自己明白我在寻找以下几点:

  • 我正在研究Android应用程序,它将使用servlets(在我的本地主机上)更新服务器上用户的位置。对此没有任何问题,一切正常。
  • 我遇到的真正问题是当我试图从服务器回到Android设备时,我只想返回一个简单的字符串,或类似的东西,很可能是一个参数,将由Android应用程序。然后我开始了解json的事情,我必须用它来做我正在寻找的东西。我已经搜索了很多关于它,发现了一些代码,但是不能很好地使用它,

所以我的问题是

  1. 是否可以从servlet中检索响应,并从中提取所需的值而不使用json或任何解析技术,因为我只需要一个字符串。
  2. HttpClient client=new DefaultHttpClient(); HttpGet request=new HttpGet(); URI address=new URI("http://xxx.xxx.xxx.xxx:8080/MyServlet"); request.setUri(address); HttpResponse response=client.execute(request); code for the servlet is something like this 请求响应和servlet的android设备的代码如上所示,但是当我在android设备中的response.toString()上调用toString方法时,它会产生一个带有一些数字序列的字符串,这对我来说是没有用的。我。 救命!救命! HELP!

  3. 一个简单的例子可以帮助我,

1 个答案:

答案 0 :(得分:3)

您可以使用不使用任何编码技术生成纯文本结果的servlet。

在服务器端,只需将doGet函数替换为:

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    PrintWriter out = response.getWriter();
    out.println("Hello World");
}

在客户端,您可以使用以下代码:

try {
    final HttpClient httpClient = new DefaultHttpClient();
    final HttpGet httpGet = new HttpGet("http://SERVLET_URL/");
    HttpResponse response = httpClient.execute(httpGet);
    final HttpEntity entity = response.getEntity();
    Log.i(TAG, "Servlet Result: " + EntityUtils.toString(entity));
} catch (ClientProtocolException e) {
    Log.e(TAG, "ClientProtocolException", e);
} catch (ParseException e) {
    Log.e(TAG, "ParseException", e);
} catch (IOException e) {
    Log.e(TAG, "IOException", e);
}