ray*_*ray 9 android httpurlconnection
这是我的连接代码HTTP.
URL url = new URL("http://www.google.com");
HttpURLConnection con = (HttpURLConnection) url.openConnection();
con.setDoOutput(true);
String responseMsg = con.getResponseMessage();
int response = con.getResponseCode();
Run Code Online (Sandbox Code Playgroud)
这是投掷 android.os.NetworkOnMainThreadException
请帮忙.
Rag*_*dan 32
发生android.os.NetworkOnMainThreadException是因为您正在主UI线程上进行网络调用.而是使用asynctask.
asynctask的文档.http://developer.android.com/reference/android/os/AsyncTask.html.
在UI线程中调用AsyncTask.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
new MyDownloadTask().execute();
}
class MyDownloadTask extends AsyncTask<Void,Void,Void>
{
protected void onPreExecute() {
//display progress dialog.
}
protected Long doInBackground(Void... params) {
URL url = new URL("http://www.google.com");
HttpURLConnection con = (HttpURLConnection) url.openConnection();
con.setDoOutput(true);
String responseMsg = con.getResponseMessage();
int response = con.getResponseCode();
return null;
}
protected void onPostExecute(VOid result) {
// dismiss progress dialog and update ui
}
}
Run Code Online (Sandbox Code Playgroud)
注意:AsyncTask旨在成为Thread和Handler的辅助类,并不构成通用的线程框架.理想情况下,AsyncTasks应该用于短操作(最多几秒钟.)如果需要保持线程长时间运行,强烈建议您使用java.util.concurrent pacakge提供的各种API,例如Executor,ThreadPoolExecutor和FutureTask.
在robospice中替代asynctask.https://github.com/octo-online/robospice.
robospice的一些特征.
1.异步执行(在后台AndroidService中)网络请求(例如:使用Spring Android的REST请求).
2.强烈打字!您使用POJO发出请求,并获得POJO作为请求结果.
3.对用于请求的POJO或您在项目中使用的Activity类都不施加任何约束.
4.caches结果(在Json中使用Jackson和Gson,或Xml,或平面文本文件,或二进制文件,甚至使用ORM Lite).
5.当且仅当它们仍然存在时,通知您的活动(或任何其他上下文)网络请求的结果
6.完全没有内存泄漏,比如Android Loaders,不像Android AsyncTasks在他们的UI线程上通知你的活动.
7.使用简单但强大的异常处理模型.
NetworkOnMainThreadException:当应用程序尝试在其主线程上执行联网操作时引发的异常。
您应该在asynctask上调用sendfeedback方法,然后只有以上代码才能工作。由于Web服务器花费大量时间来响应,因此主线程变得无响应。为了避免它,您应该在另一个线程上调用它。因此asynctask更好。
http://android-developers.blogspot.in/2009/05/painless-threading.html
| 归档时间: |
|
| 查看次数: |
27487 次 |
| 最近记录: |