私は最初の Android アプリケーションに取り組んでおり、HTTP POST 要求を作成して応答を受信しようとすると、大きな問題が発生します。これらはいくつかの事実です:
- AndroidManifest.xml に INTERNET 権限があります。
<uses-permission android:name="android.permission.INTERNET" />
- 私は多くの解決策を試しました。URLConnection または HttpURLConnection を使用したソリューションは、空の文字列を返すため機能しません。HttpClient と HttpPost を使用したソリューションが execute() で失敗する - 私は 1 時間グーグルで検索しましたが、それを修正する方法がわかりませんでした。
- インターネット接続あり。しかし、問題を解決し、最終的にHTTP POST リクエストを送信する方法がわかりません。
upd:たとえば、このコードは私のプログラムをクラッシュさせます:
public static APIResponse getResponse(String action, Map<String, String> params) throws IOException {
// Create a new HttpClient and Post Header
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://google.com");
try {
// Add your data
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
nameValuePairs.add(new BasicNameValuePair("id", "12345"));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
// Execute HTTP Post Request
HttpResponse response = httpclient.execute(httppost);
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
} catch (IOException e) {
// TODO Auto-generated catch block
}
return null;
}
更新 2:私の電話では動作しますが、エミュレーターでは動作しません! エミュレータでその動作を修正する方法は?
更新 3:修正済み。