我有一个AsyncTask如下:
@Override
protected ArrayList<String> doInBackground(String... params) {
ArrayList<String> result=new ArrayList<>();
try {
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(Constants.URL);
// Add your data
List<BasicNameValuePair> nameValuePairs = new ArrayList<BasicNameValuePair>(
2);
nameValuePairs.add(new BasicNameValuePair("id",params[0]));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs, "UTF-8"));
// Execute HTTP Post Request
HttpResponse response = httpclient.execute(httppost);
HttpEntity httpEntity = response.getEntity();
inputStream = httpEntity.getContent();
// deal with response here
....
} catch (Exception e) {
Log.e("Debug", e + " " + e.getMessage());
}
return result;
}
但是,在Jellybean上,在运行应用程序一段时间后,代码只运行到httpclient.execute(httppost)并在那里停止。
任何人都可以帮助我吗?
答案 0 :(得分:0)
试试这件事:
1.检查您的网络连接和服务器可用性。
2.检查您是否已将清单添加到您的清单。
<manifest xlmns:android...>
<uses-permission android:name="android.permission.INTERNET" />
<application ...
</manifest>
如果我在“一段时间后”没有误解,那么你说它永远不会成功,它总是停在那里。这可能是因为权限或您的网络连接,因为请求似乎没有返回。
如果它有时运行是,但不运行其他运行,我认为这必须归功于您的服务器端。
我建议您使用https://github.com/matessoftwaresolutions/AndroidHttpRestService
我保证会使用Android Studio文件夹结构推送新的提交。