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()
を試しましたが、メモリ内のアドレスを出力するようです。
ありがとう
ResponseHandler
を使用します。 1行のコード。 here および here を参照してください。サンプル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
}
}
- http://www.androidsnippets.org/snippets/36/ でこの投稿と完全なHttpClientの組み合わせを追加します
古い方法でやるだけです。応答で異なるコンテンツタイプを取得する場合、ResponseHandlerよりも強力です。
ByteArrayOutputStream outstream = new ByteArrayOutputStream();
response.getEntity().writeTo(outstream);
byte [] responseBody = outstream.toByteArray();
このコードは、応答メッセージ全体をrespondでString
として、ステータスコードをrspでint
として返します。
respond = response.getStatusLine().getReasonPhrase();
rsp = response.getStatusLine().getStatusCode();`
最も簡単なアプローチは、おそらくorg.Apache.http.util.EntityUtils
:
String message = EntityUtils.toString(response.getEntity());
エンティティのコンテンツを読み取り、文字列として返します。コンテンツはエンティティからの文字セット(存在する場合)を使用して変換されますが、失敗すると「ISO-8859-1」が使用されます。
必要に応じて、デフォルトの文字セットを明示的に渡すことができます-例えば.
String message = EntityUtils.toString(response.getEntity(). "UTF-8");
エンティティに何も見つからない場合は、提供されたデフォルトの文字セットを使用して、エンティティのコンテンツを文字列として取得します。渡されたデフォルトの文字セットがヌルの場合、デフォルトの「ISO-8859-1」が使用されます。