相关疑难解决方法(0)

如何修复android.os.NetworkOnMainThreadException?

我在为RssReader运行我的Android项目时遇到错误.

码:

URL url = new URL(urlToRssFeed);
SAXParserFactory factory = SAXParserFactory.newInstance();
SAXParser parser = factory.newSAXParser();
XMLReader xmlreader = parser.getXMLReader();
RssHandler theRSSHandler = new RssHandler();
xmlreader.setContentHandler(theRSSHandler);
InputSource is = new InputSource(url.openStream());
xmlreader.parse(is);
return theRSSHandler.getFeed();
Run Code Online (Sandbox Code Playgroud)

它显示以下错误:

android.os.NetworkOnMainThreadException
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?

java android android-networking networkonmainthread

2308
推荐指数
40
解决办法
115万
查看次数

OkHttp Library - 关于简单帖子的NetworkOnMainThreadException

我想在Android中使用OkHttp库进行网络连接.我从他们网站上写的简单帖子示例开始:

public static final MediaType JSON = MediaType.parse("application/json; charset=utf-8");

OkHttpClient client = new OkHttpClient();

String post(String url, String json) throws IOException {
  RequestBody body = RequestBody.create(JSON, json);
  Request request = new Request.Builder()
      .url(url)
      .post(body)
      .build();
  Response response = client.newCall(request).execute();
  return response.body().string();
}
Run Code Online (Sandbox Code Playgroud)

通过这个电话:

String response = post("http://www.roundsapp.com/post", json);
Run Code Online (Sandbox Code Playgroud)

此调用以NetworkOnMainThreadException结束.
我可以使用AsyncTask包装调用,但据我从示例中了解,OkHttp库应该已经处理过了.我做错了什么?

android android-asynctask networkonmainthread okhttp

24
推荐指数
2
解决办法
3万
查看次数