- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在尝试解析从 HttpPost 到服务器 (last.fm) 的 XML HttpResponse,用于 last.fm android 应用程序。如果我简单地将它解析为字符串,我可以看到它是一个普通的 xml 字符串,包含所有需要的信息。但我只是无法解析单个 NameValuePairs。这是我的 HttpResponse 对象:
HttpResponse response = client.execute(post);
HttpEntity r_entity = response.getEntity();
我尝试了两种不同的方法,但没有一种起作用。首先,我尝试检索 NameValuePairs:
List<NameValuePair> answer = URLEncodedUtils.parse(r_entity);
String name = "empty";
String playcount = "empty";
for (int i = 0; i < answer.size(); i++){
if (answer.get(i).getName().equals("name")){
name = answer.get(i).getValue();
} else if (answer.get(i).getName().equals("playcount")){
playcount = answer.get(i).getValue();
}
}
在此代码之后,名称和播放次数保持为“空”。所以我尝试使用 XML 解析器:
DocumentBuilder db = DocumentBuilderFactory.newInstance().newDocumentBuilder();
Document answer = db.parse(new DataInputStream(r_entity.getContent()));
NodeList nl = answer.getElementsByTagName("playcount");
String playcount = "empty";
for (int i = 0; i < nl.getLength(); i++) {
Node n = nl.item(i);
Node fc = n.getFirstChild();
playcount Url = fc.getNodeValue();
}
这似乎更早地失败了,因为它甚至没有设置 playcount 变量。但就像我说的,如果我执行此操作:
EntityUtils.toString(r_entity);
我会得到一个完美的xml字符串。因此解析它应该没有问题,因为 HttpResponse 包含正确的信息。我做错了什么?
最佳答案
我解决了。 DOM XML 解析器需要更多调整:
HttpResponse response = client.execute(post);
HttpEntity r_entity = response.getEntity();
String xmlString = EntityUtils.toString(r_entity);
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder db = factory.newDocumentBuilder();
InputSource inStream = new InputSource();
inStream.setCharacterStream(new StringReader(xmlString));
Document doc = db.parse(inStream);
String playcount = "empty";
NodeList nl = doc.getElementsByTagName("playcount");
for(int i = 0; i < nl.getLength(); i++) {
if (nl.item(i).getNodeType() == org.w3c.dom.Node.ELEMENT_NODE) {
org.w3c.dom.Element nameElement = (org.w3c.dom.Element) nl.item(i);
playcount = nameElement.getFirstChild().getNodeValue().trim();
}
}
关于android - 解析 XML HttpResponse,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4974591/
在 ASPX 页面中,我想根据代码路径在特定点(不是由于错误条件)结束响应,以便没有其他内容被发送回流中。如此自然地使用: Response.End(); 这会导致 ThreadAbortExcept
我正在编写一些需要使用我自己的代码 HttpResponse对象捕获来自另一个对象的方法的输出,该方法采用 HttpResponse作为参数。问题是,另一个对象(我无法修改)调用 HttpRespon
嘿伙计们,我对编码有点陌生,但我正在尽力而为。我一直在关注这个登录和注册教程here 。我下载了他的源代码并添加到我的数据库信息中,它可以在 Eclipse 中与他的项目配合使用。但是当我在项目中运行
我在android studio工作。我花了很多时间搜索如何从 mysql 数据库检索特定行,但实际上每次我的应用程序在 HttpResponse httpResponse = httpClient.
import urllib.request html = urllib.request.urlopen('http://jshawl.com/python-playground/') s = html
我的 if (httpResponse == null) block 没有运行。如何在 HttpResponse httpResponse = httpClient.execute(httpPost)
有没有办法控制 contenttype ='application/pdf' 的 HTTPResponse 的缩放大小? 最佳答案 我试了一下它的工作。 download.ashx?id=1zoo
我在休息服务中有以下方法: @POST @Path("/create") @ResponseStatus(HttpStatus.CREATED) @Consumes(M
我的服务器端 Dart Web 应用程序为某些请求提供图像文件。 简单来说,它目前的作用如下: HttpServer.bind(InternetAddress.ANY_IP_V4, 80)
所以我尝试创建一个 HttpsRequest,效果非常好。问题是,我做错了什么,我认为这可能是因为我使用 HttpResponse,但我没有找到任何与 Https 类似的东西。有没有一种方法可以像 h
我已经为此端点编写了一个 REST 客户端: textmap.com/ethnicity_api/api 但是,当在 POST 参数中向其传递诸如 jennífer garcía 之类的名称字符串并将
首先 - 我对 Java 还很陌生。我正在开发一个使用 Shiro 的应用程序,并且我已经定义了用于注销的 REST。它内部有一个重定向,在 Chrome 中使用开发工具时会显示 302 Found
这个问题在这里已经有了答案: 关闭 10 年前。 Possible Duplicate: Parsing an UTF-8 Encodded XML file 我正在解析一个 UTF-8 编码的 X
我将我的代码放在 AsyncTask 中,在 OnPostExecution 中,Dialog 中的结果与 Logcat 中记录的结果不同。Logcat里的不全,Dialog里的全 这是我的代码:
我正在尝试从 https://....com:8455 链接获取内容,其中 “服务器的证书不受信任”。内容是:“测试”。 但在 HttpResponse response = httpClient.e
在我之前的项目中,我使用了 AsyncHttpClient 并且 lib 是 android-async-http-1.4.8.jar 并且一切都很好。但是现在当我在不同的 eclipse 环境中导入
在 Python 中(使用 Python 3.2,但我想它在 Python 2.x 中应该基本相同),我尝试对某个 URL 发出请求。 如果出现访问被拒绝等错误,我会得到一个异常: >>> reque
我正在使用 org.apache.http.HttpResponse 我想创建一个空的虚拟响应,我将使用它在发生错误时返回而不是传回 null。 我试图创建一个,但它丢失了一些奇怪的参数。谁能告诉我如
这个问题在这里已经有了答案: Android: How get the status-code of an HttpClient request (3 个答案) 关闭 9 年前。 我正在尝试获取 H
以下方法在读取 HttpResponse 时失败并出现错误:“内容已被消耗”。我知道内容只能使用一次,但我在第一次尝试时遇到此错误,而且我在代码中看不到任何可能使用它两次的地方。 privat
我是一名优秀的程序员,十分优秀!