我在第一个Android应用程序上工作,尝试发出HTTP POST请求和接收响应时遇到了一些很大的问题。这几个事实:
<uses-permission android:name="android.permission.INTERNET" />
更新:,例如这段代码使我的程序崩溃:
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:已修复。
答案 0 :(得分:1)
您还应该使用fiddler2来帮助调试HTTP消息。
另请注意,您没有正确捕获所有异常...您可以在最后添加一个通用的catch语句,以防止您的应用程序崩溃并帮助您找出问题所在。可能是超时或类似。