我知道这个问题已经被问过很多次了。我也搜索了论坛,但找不到我要找的答案。
该代码适用于许多 android 版本,但不适用于 3.0 或更高版本。 String response_from_server = null;
// Create a new HttpClient and Post Header
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(file_n_folder.URL_POST);
//Log.d("URL",file_n_folder.URL_POST);
try {
JSONArray postjson = new JSONArray();
postjson.put(obj);
// Post the data:
httppost.setHeader("json",obj.toString());
httppost.getParams().setParameter("jsonpost",postjson);
// Execute HTTP Post Request
HttpResponse response = httpclient.execute(httppost);
// for JSON:
if(response != null){
InputStream is = response.getEntity().getContent();
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
StringBuilder sb = new StringBuilder();
String line = null;
try {
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
response_from_server = sb.toString();
//Log.d("RESPONSE FROM SERVER",response_from_server);
return response_from_server;
}
}catch (ClientProtocolException e){
Log.d("EXCEPTION line 94",e.getMessage());
}catch (IOException e){
Log.d("EXCEPTION line 96",e.getMessage());
}
return response_from_server;
它总是在 httpclient.execute(httppost); 上使应用程序崩溃
你们能给我一些建议吗?如何解决这个问题?
谢谢
最佳答案
这是因为自 Honeycomb 以来,您有义务在 UI 线程之外进行网络连接。将您的网络移动到 IntentService 或 AsyncTask
请参阅本文:http://www.androiddesignpatterns.com/2012/06/app-force-close-honeycomb-ics.html
关于Android ICS HTTP POST,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13520549/