28

Androidフォンにこのコードがあります。

   URI uri = new URI(url);
   HttpPost post = new HttpPost(uri);
   HttpClient client = new DefaultHttpClient();
   HttpResponse response = client.execute(post);

ページにこれをロードするasp.net Webフォームアプリケーションがあります

 Response.Output.Write("It worked");

この Response を HttpReponse から取得して出力したいと思います。どうすればいいですか?

試してみresponse.getEntity().toString()ましたが、メモリ内のアドレスを出力しているようです。

ありがとう

4

5 に答える 5

40

を使用しResponseHandlerます。1行のコード。これを使用したAndroidプロジェクトのサンプルについては、ここここを参照してください。

public void postData() {
    // Create a new HttpClient and Post Header
    HttpClient httpclient = new DefaultHttpClient();
    HttpPost httppost = new HttpPost("http://www.yoursite.com/user");

    try {
        // Add your data
        List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
        nameValuePairs.add(new BasicNameValuePair("id", "12345"));
        nameValuePairs.add(new BasicNameValuePair("stringdata", "AndDev is Cool!"));
        httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

        // Execute HTTP Post Request
        ResponseHandler<String> responseHandler=new BasicResponseHandler();
        String responseBody = httpclient.execute(httppost, responseHandler);
        JSONObject response=new JSONObject(responseBody);
    } catch (ClientProtocolException e) {
        // TODO Auto-generated catch block
    } catch (IOException e) {
        // TODO Auto-generated catch block
    }
} 

この投稿と完全なHttpClientの組み合わせを-http://www.androidsnippets.org/snippets/36/に追加します

于 2010-04-04T00:12:00.530 に答える
12

私はそれを古い方法で行うだけです。応答で異なるコンテンツ タイプを取得した場合に備えて、ResponseHandler よりも防弾です。

ByteArrayOutputStream outstream = new ByteArrayOutputStream();
response.getEntity().writeTo(outstream);
byte [] responseBody = outstream.toByteArray();
于 2010-04-07T16:19:58.273 に答える
8

次のコードを使用しました

BufferedReader r = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));

StringBuilder total = new StringBuilder();

String line = null;

while ((line = r.readLine()) != null) {
   total.append(line);
}
r.close();
return total.toString();
于 2013-01-03T08:31:45.423 に答える
5

このコードは、 respondで応答メッセージ全体を として返し、rspStringステータス コードをとして返します。int

respond = response.getStatusLine().getReasonPhrase();

rsp = response.getStatusLine().getStatusCode();`
于 2012-12-28T07:52:36.910 に答える