Android Can';t最后执行HTTP POST请求
我在开发我的第一个Android应用程序,在尝试发出HTTP POST请求和接收响应时遇到了一些大问题。以下是几个事实:Android Can';t最后执行HTTP POST请求,android,http,post,Android,Http,Post,我在开发我的第一个Android应用程序,在尝试发出HTTP POST请求和接收响应时遇到了一些大问题。以下是几个事实: 我在AndroidManifest.xml中具有INTERNET权限: 我尝试了很多解决办法。带有URLConnection或HttpURLConnection的解决方案不起作用,因为它们返回空字符串。使用HttpClient和HttpPost的解决方案在execute()上失败-我在Google上搜索了一个小时,但没有找到解决方法 有互联网连接。但我不知道如何解决我的问题
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;
}
公共静态APIResponse getResponse(字符串操作、映射参数)引发IOException{
//创建一个新的HttpClient和Post头
HttpClient HttpClient=新的DefaultHttpClient();
HttpPost HttpPost=新的HttpPost(“http://google.com");
试一试{
//添加您的数据
List nameValuePairs=新的ArrayList(2);
添加(新的BasicNameValuePair(“id”,“12345”);
setEntity(新的UrlEncodedFormEntity(nameValuePairs));
//执行HTTP Post请求
HttpResponse response=httpclient.execute(httppost);
}捕获(客户端协议例外e){
//TODO自动生成的捕捉块
}捕获(IOE异常){
//TODO自动生成的捕捉块
}
返回null;
}
UPD2:它在我的手机上工作,但在emulator上不工作!如何在emulator上修复该行为
upd 3:已修复。查看
您还应该使用来帮助调试HTTP消息
另外请注意,您没有正确捕获所有异常。。。您可以在末尾添加一个通用catch语句,以防止应用程序崩溃,并帮助您找出问题所在。可能是超时或类似情况。首先,您可以将代码放在这里,以便人们可以帮助您解决问题,可能只是简单的URL编码或简单的客户端配置。完全重复:@TomDignan不,有一个GET there,该解决方案对我不起作用。我解决了我的问题。它在我的手机上工作,但在模拟器上崩溃。但是,有谁能帮我解决这个问题吗?我想在emulator上测试我的程序。您的评论表明您仍然存在崩溃问题。。。添加一个通用的excpetion捕获将防止这种情况发生。使用日志语句找出发生了什么。