我在我的第一个 Android 应用程序上工作,但在尝试发出 HTTP POST 请求和接收响应时遇到了一些很大的问题。这些是几个事实:
- 我在 AndroidManifest.xml 中有 INTERNET 权限:
<uses-permission android:name="android.permission.INTERNET" />
- 我尝试了很多解决方案。使用 URLConnection 或 HttpURLConnection 的解决方案不起作用,因为它们返回空字符串。HttpClient 和 HttpPost 的解决方案在 execute() 上失败 - 我在谷歌上搜索了一个小时,但没有找到解决方法。
- 有互联网连接。但我不知道如何解决我的问题并最终发送 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;
}
upd 2:它适用于我的手机,但不适用于模拟器!如何修复模拟器上的这种行为?
更新 3:已修复。