在java中有输入/输出流。
我很困惑,当我创建一个流时,它是流中的数据还是只是数据的管道?
实际上,我正在尝试将从休息请求创建的 xml 响应解析为返回 xml 响应的 Web 服务。
//Parse Xml
ParseXml parser=new ParseXml();
parser.parseStream(connection.getInputStream());
其中 connection 是一个 HttpURLConnection 对象。
以下是 parseStream() 的来源
import java.io.IOException;
import java.io.InputStream;
import java.io.Reader;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
import org.xml.sax.XMLReader;
import org.xml.sax.helpers.XMLReaderFactory;
public class ParseXml
{
public void parseStream(InputStream input)
{
XMLReader xmlReader;
try
{
xmlReader = (XMLReader) XMLReaderFactory.createXMLReader();
xmlReader.setContentHandler(new XmlParser());
xmlReader.parse(new InputSource(input));
}
catch (SAXException e)
{
e.printStackTrace();
}
catch (IOException e)
{
e.printStackTrace();
}
}
}
我遇到了一个例外:
[Fatal Error] :1:1: Premature end of file.
org.xml.sax.SAXParseException: Premature end of file.
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown Source)
at xmlparsing.ParseXml.parseStream(ParseXml.java:24)
at smssend.SmsSend.restHttpPost(SmsSend.java:129)
at main.SmsApiClass.main(SmsApiClass.java:28)