BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / mobile-terminal-at / #32465同步于 2016/10/26
该镜像源已超过 30 天没有更新,可能在源站已被删除。
MobileTerminalAT机器人发帖

有用过Jsoup的吗?

SKElemenT
2016/10/26镜像同步5 回复
遇到一个问题,试用Jsoup解析的时候使用如下语句: Document doc= Jsoup.connect(url).get(); 发生异常,但是同样的代码在使用java run的时候就没有问题。 url自身亲自在浏览器上能打开并且能看到数据 环境使用eclipse 开发android项目时run android application发生该问题,但是在eclipse上使用java application就没有问题。 异常如下: 10-26 12:08:04.140: W/System.err(22542): android.os.NetworkOnMainThreadException 10-26 12:08:04.150: W/System.err(22542): at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1148) 10-26 12:08:04.160: W/System.err(22542): at java.net.InetAddress.lookupHostByName(InetAddress.java:443) 10-26 12:08:04.160: W/System.err(22542): at java.net.InetAddress.getAllByNameImpl(InetAddress.java:294) 10-26 12:08:04.160: W/System.err(22542): at java.net.InetAddress.getAllByName(InetAddress.java:214) 10-26 12:08:04.160: W/System.err(22542): at com.android.okhttp.internal.Dns$1.getAllByName(Dns.java:28) 10-26 12:08:04.160: W/System.err(22542): at com.android.okhttp.internal.http.RouteSelector.resetNextInetSocketAddress(RouteSelector.java:216) 10-26 12:08:04.160: W/System.err(22542): at com.android.okhttp.internal.http.RouteSelector.next(RouteSelector.java:122) 10-26 12:08:04.160: W/System.err(22542): at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:292) 10-26 12:08:04.160: W/System.err(22542): at com.android.okhttp.internal.http.HttpEngine.sendSocketRequest(HttpEngine.java:255) 10-26 12:08:04.160: W/System.err(22542): at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:206) 10-26 12:08:04.160: W/System.err(22542): at com.android.okhttp.internal.http.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:345) 10-26 12:08:04.160: W/System.err(22542): at com.android.okhttp.internal.http.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:89) 10-26 12:08:04.170: W/System.err(22542): at com.android.okhttp.internal.http.HttpsURLConnectionImpl.connect(HttpsURLConnectionImpl.java:161) 10-26 12:08:04.170: W/System.err(22542): at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:571) 10-26 12:08:04.170: W/System.err(22542): at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:548) 10-26 12:08:04.170: W/System.err(22542): at org.jsoup.helper.HttpConnection.execute(HttpConnection.java:235) 10-26 12:08:04.170: W/System.err(22542): at org.jsoup.helper.HttpConnection.get(HttpConnection.java:224) 10-26 12:08:04.170: W/System.err(22542): at com.steve.utils.FileUtils.foodMatch(FileUtils.java:228) 10-26 12:08:04.170: W/System.err(22542): at com.steve.foodtest.MainActivity.onCreate(MainActivity.java:19) 10-26 12:08:04.170: W/System.err(22542): at android.app.Activity.performCreate(Activity.java:5304) 10-26 12:08:04.170: W/System.err(22542): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1090) 10-26 12:08:04.170: W/System.err(22542): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2245) 10-26 12:08:04.170: W/System.err(22542): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2331) 10-26 12:08:04.170: W/System.err(22542): at android.app.ActivityThread.access$1000(ActivityThread.java:143) 10-26 12:08:04.170: W/System.err(22542): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1244) 10-26 12:08:04.170: W/System.err(22542): at android.os.Handler.dispatchMessage(Handler.java:102) 10-26 12:08:04.170: W/System.err(22542): at android.os.Looper.loop(Looper.java:136) 10-26 12:08:04.180: W/System.err(22542): at android.app.ActivityThread.main(ActivityThread.java:5291) 10-26 12:08:04.180: W/System.err(22542): at java.lang.reflect.Method.invokeNative(Native Method) 10-26 12:08:04.180: W/System.err(22542): at java.lang.reflect.Method.invoke(Method.java:515) 10-26 12:08:04.180: W/System.err(22542): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:849) 10-26 12:08:04.180: W/System.err(22542): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:665) 10-26 12:08:04.180: W/System.err(22542): at dalvik.system.NativeStart.main(Native Method) 求教!!谢谢!
订阅后,新回复会通过你的通知中心匿名送达。
5 条回复
fa520875机器人#1 · 2016/10/26
需要开子线程去处理? 发自「贵邮」
zhumeng2010机器人#2 · 2016/10/27
不要用connect()去获取网页数据,回很慢的,可以用httpclient什么的获取到网页字符串再给jsoup处理
ccyingzi2009机器人#3 · 2016/10/27
安卓 应该是4.0以后不能在主线程做网络请求(android.os.NetworkOnMainThreadException)。 1. 自己开个异步线程,如果需要更新界面参考Asynctask。如果只是简单处理数据用thread就可以。 2. 或者可以在网上找一个网络框架或者自己封一个。拿到数据后在用jsoup解析。
sollian机器人#4 · 2016/10/27
这么明显的提示。。。开个线程就可以了吧
SKElemenT机器人#5 · 2016/10/31
恩 已经解决了 提了个bug给jsoup官网 15min回复已经解决了。主要是没看jsoup源代码,不知道他里面干了啥。多谢各位