0

自从最近几天试图得到这个,我就陷入了困境,但无法带来任何想要的结果。我会努力让自己清楚我在以下几点中寻找什么:

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

所以我的问题是

  1. 是否可以在不使用 json 或任何解析技术的情况下从 servlet 检索响应,并从中提取所需的值,因为我只需要像单个字符串这样的东西。
  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);servlet 的代码是这样的 上面显示了来自 android 设备请求响应和 servlet 的代码,但是当我在 android 设备中调用 response.toString() 上的 toString 方法时,它会产生一个带有一些数字序列的字符串,这对我。帮助!帮助!帮助!

一个简单的例子可能会帮助我,

4

1 回答 1

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);
}
于 2013-10-27T11:57:37.180 回答