0

ここ数日、これを取得しようとしていて、希望する結果を引き出すことができませんでした。次の点で探しているものを明確にしようとします。

  • 私はサーブレット(私のローカルホスト上)を使用してサーバー上のユーザーの場所を更新するアンドロイドアプリに取り組んでいます。これに関して問題はありません。すべて正常に動作しています。
  • 私の邪魔になった本当の問題は、サーバーからAndroidデバイスに応答を返そうとしたときでした.単純な文字列、またはそのようなものを返したいだけです,おそらくAndroidアプリによって利用されるパラメータ.それから、私が探していることを行うためにそれを使用しなければならないjsonのことを知りました.私はそれについて多くのことを検索し、いくつかのコードも見つけましたが、うまく使用できませんでした.

だから私の質問は

  1. サーブレットから応答を取得し、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);サーブレットのコードは次のようなものです 応答を要求する Android デバイスからのコードとサーブレットを上に示しますが、Android デバイスの response.toString() で toString メソッドを呼び出すと、何の役にも立たない一連の数字を含む文字列が返されます。自分。ヘルプ!ヘルプ!ヘルプ!

それの簡単な例は私を助けるかもしれません、

4

1 に答える 1

3

エンコード技術なしでプレーンテキストの結果を生成するサーブレットを使用できます。

サーバー側では、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 に答える