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)