我收到XML请求的响应,我需要处理它。当请求被接受且帐户被验证时,响应将返回“00”,并且当帐户无效时,响应将返回“03”。
目前Sax Reader正在返回正确的信息,但我无法从阅读器中提取信息,因此我可以将用户名/密码存储到手机的内部存储器中。
Sax Reader的代码是:
public void inputStreamToString(InputStream is) {
try {
SAXParserFactory factory = SAXParserFactory.newInstance();
SAXParser saxParser = factory.newSAXParser();
DefaultHandler handler = new DefaultHandler() {
boolean errorCode = false;
public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException
{
System.out.println("Start Element :" + qName);
if (qName.equalsIgnoreCase("ErrorCode"))
{
errorCode = true;
}
}
public void endElement(String uri, String localName,String qName) throws SAXException
{
System.out.println("End Element :" + qName);
}
public void characters(char ch[], int start, int length) throws SAXException
{
if (errorCode)
{
System.out.println("ErrorCode : "+ new String(ch, start, length));
if (ch.equals(00))
{
System.out.println("IT WORKS!!!");
}
errorCode = false;
}
}
};
saxParser.parse(is, handler);
}
catch (Exception e)
{
System.out.println("Sax Error");
e.printStackTrace();
}
}
正如您在公共无效字符中看到的那样,它会打印出与响应相关的错误代码。我目前正在If语句中尝试ch.equals(00)
,但它没有找到正确的信息!可能是ch是char数据类型的问题吗?
任何帮助将不胜感激。
答案 0 :(得分:0)
我得到了它的工作。而不是使用'00'和'03'错误代码。我使用了“确定”和“无效”的响应消息的长度。