我正在执行名称/值对的HTTP POST,然后尝试获取HTTP响应主体(并将其放入名为描述的String中)。
我无法找到访问响应消息正文的方法。我所拥有的是迄今为止我提出的最好的但是它不起作用。 “description”变量最终为空。
最终目标是在服务器端拥有代码,该代码接收post数据并返回包含有用信息的消息体。现在我只有一个存根html,总是返回相同的东西(见下面的HTML)。换句话说,应用程序将向服务器发送DTC(诊断故障代码,从汽车),服务器将查找它并在HTML正文内发回描述文本。
方法的源代码:
public String getDTCDescription (String DTC) {
String description = "";
String url = "http://site/test.html";
List<NameValuePair> args = new ArrayList<NameValuePair>();
args.add(new BasicNameValuePair("testkey","testValue"));
HttpResponse h;
h = postData(url, args);
BufferedInputStream content = null;
try {
content = new BufferedInputStream(h.getEntity().getContent());
} catch (Exception e) {
Log.e("NetDTCInfo",e.getMessage());
}
if (content == null) {
return "";
}
// try and loop through all the data waiting on the input stream.
try {
while (content.available() > 0) {
Log.d("NetDTCInfo","Reading a byte...");
description = description + (char) content.read();
Log.d("NetDTCInfo","Description is now: " + description);
}
} catch (IOException e) {
Log.e("NetDTCInfo","Error while reading. " + e.getMessage());
}
return description;
}
文件test.html的源代码
<html>
<body>
<pre>
P0521|This is a description of DTC code P0521.
</pre>
</body>
</html>
答案 0 :(得分:1)
看起来你的这种做法很复杂,比在respose中发送一个HTML页面更简单,只需发送一个你最想在客户端得到的字符串。如果您在响应消息中有更复杂的数据,那么我会建议您在客户端使用XML响应和SAX解析。