当前位置: 首页 > 面试题库 >

解析异常:在第1行的第0列:未找到任何元素

云曦之
2023-03-14
问题内容

我有一个奇怪的问题。我收到以下导致强制关闭的错误:

org.apache.harmony.xml.ExpatParser $
ParseException:在第1行的第0列:在org.apache.harmony.xml的org.apache.harmony.xml.ExpatParser.parseFragment(ExpatParser.java:508)上找不到任何元素。
org.apache.harmony.xml中的ExpatParser.parseDocument(ExpatParser.java:467).org.apache.harmony.xml.ExpatReader.parse(ExpatReader.java:286)中的ExpatReader.parse(ExpatReader.java:329)

单击“强制关闭”按钮后,将重新创建“活动”,并且分析顺利完成。我在AsyncTask的doInBackground中使用以下代码段:

URL serverAddress = new URL(url[0]);

HttpURLConnection connection = (HttpURLConnection) serverAddress.openConnection();
connection.setRequestMethod("GET");
connection.setDoOutput(true);
connection.setReadTimeout(10000);
connection.connect();

InputStream stream = connection.getInputStream();

SAXParserFactory spf = SAXParserFactory.newInstance();
SAXParser sp = spf.newSAXParser();

XMLReader xr = sp.getXMLReader();

xr.parse(new InputSource(stream));  // The line that throws the exception

为什么活动会强制关闭然后立即运行而没有任何问题?BufferedInputStream是否会有所不同?我很困惑。:(

谢谢大家的宝贵时间。

更新:原来HttpURLConnection.getResponseCode()经常返回-1,因此InputStream可能没有正确设置。


问题答案:
HTTPURLConnection connection = (HttpURLConnection) serverAddress.openConnection();
connection.setRequestMethod("GET");
connection.setDoOutput(true);

这些行有点奇怪。是HTTPURLConnection还是HttpURLConnection?默认的请求方法已经GETsetDoOutput(true)但是,它将迫使它POST

我将所有这些行替换为

URLConnection connection = serverAddress.openConnection();

然后重试。由于您强行POST对输出(请求主体)未写入任何内容,因此可能返回错误。的connection.connect()是已经隐含调用方式connection.getInputStream(),因此该行是多余的为好。

更新 :以下用于测试目的是否有效?

BufferedReader reader = new BufferedReader(new InputStreamReader(stream, "UTF-8"));
for (String line; (line = reader.readLine()) != null;) {
    System.out.println(line);
}
reader.close();


 类似资料:
  • 问题内容: 尝试解码JSON 时出现错误。 我用于API调用的URL在浏览器中可以正常工作,但是通过curl请求完成时会出现此错误。以下是我用于curl请求的代码。 错误发生在 完整回溯: 追溯: 问题答案: 总结评论中的对话: 不需要使用库,Python作为模块包含了相同的库。 无需解码从UTF8到unicode的响应,/ 方法可以本地处理UTF8编码的数据。 有一个非常古老的API。除非您有特

  • 我正在开发一个电子学习应用程序。但是我在从JsonObject解析时遇到了一个问题。你能给我一个简单易懂的方法来做这件事吗? {"状态":true,"类别": [ { "category_id":"1","category_name":"印度尼西亚语","category_detail":null,"category_thumbnail":"0" }, { "category_id":"2","c

  • 我收到了firebase函数和dialogflow的响应,其中包含了我进一步实现所需的一些信息。响应是一个JSON,我将其保存在中,它是一个HashMap(字符串,对象)类型的变量。 我搜索过其他类似的线程,但奇怪的是,我的问题出现在第2列,而不是第1列,我在json中没有看到问题。这是gson部分。错误被抛出到带有属性的行上! 这是回应JSON:

  • 我使用请求来获取和解析使用Scrapy with Scrapyrt(实时刮取)刮取的一些数据。 我是这样做的: 根据Scrapy文档,当参数设置为时,爬行器会自动请求URL并将响应传递给解析方法,解析方法是解析请求时使用的默认方法。 start_requests 类型:布尔型 可选的 spider是否应执行Scrapy.spider.start\u请求方法。在没有ScrapyRT的情况下正常运行S

  • org.hibernate.hql.ast.查询语法异常:意外令牌:在第1行附近,第102列[从com.strutsProject.dto.EventClub bTb作为C内连接com.strutsProject.dto.成就Tb作为A. EVENTNAME=C. EVENTNAME] String hql=“FROM com.strutsProject.dto.EventClubTb as C

  • 这是我的配置文件hibernate。cfg公司。xml: 以及获取SessionFactory的类: 我收到错误: 原因:组织。冬眠内部的util。配置。ConfigurationException:无法在资源Hibernate中的行号0和列0处执行解组。cfg公司。xml。消息:空 做主要工作的班级是: 私有静态void getTagsFromFile(文件f){