android - 运行 AsyncTask 的致命异常
问题描述
我在尝试添加要解析的 url 时遇到问题,我得到一个FATAL EXCEPTION: AsyncTask # 1
错误,我不明白为什么。
这就是我解析数据的方式:
@Override
protected ArrayList<TMOLectorClase> doInBackground(Void... voids) {
String url = getIntent().getStringExtra("url");
tmoLectorClases.clear();
try {
Document doc = Jsoup.connect(url).get();
Elements data = doc.select("div");
for (Element e : data) {
String urlRedireccionada = e.select("div.OUTBRAIN").attr("data-src");
try {
doc = Jsoup.connect(urlRedireccionada).get();
Elements dataNuevo = doc.select("div.img-container.text-center");
for (Element e1 : dataNuevo) {
String imgUrl = e1.select("img").attr("src");
tmoLectorClases.add(new TMOLectorClase(imgUrl));
}
} catch (IOException ie) {
ie.printStackTrace();
}
}
} catch (IOException e) {
e.printStackTrace();
}
return tmoLectorClases;
}
错误LogCat
我标记了这一行:
doc = Jsoup.connect(urlRedireccionada).get();
出现错误:
Caused by: java.lang.IllegalArgumentException: Must supply a valid URL
发生的事情是这个url
,它变成了这个,urlRedireccion
我尝试将图像从. 有人可以告诉我如何解决吗?调试代码,然后调试有效的 url:urlRedireccion
RecyclerView
解决方案
String
解决方案是使用重定向的 url创建一个:
String nuevaUrl = Jsoup.connect(url).followRedirects(true).execute().url().toExternalForm();
之后,您将添加到您的Document
:
Document doc = Jsoup.connect(nuevaUrl).get();
推荐阅读
- android-studio - 当带有来自hain文件的搜索过滤器的回收器视图建议在android studio中单击一些文本时如何打开新活动
- ajax - 当我从 Ajax 调用会话变量时无法读取它,但如果我从 ASP.Net 中的控制器调用它,我可以读取它
- javascript - 更新嵌套数组 react.js 中的状态
- c - 从内核空间访问进程堆栈指针
- java - Java SE Embedded 在 Java 10 中是否已停用?
- wordpress - Wordpress 删除 /category/ 标签
- ssh - SSHRC 脚本不工作 > 意外的操作员
- selenium - 如何使用 HTML 代码识别 Selenium 的 Web 元素
- django - Django 复杂模型和嵌套查询
- javascript - 车把多选助手