- From: Kristjan Sander <kristjan@webmedia.ee>
- Date: Wed, 27 Feb 2002 13:18:45 -0500 (EST)
- To: <www-jigsaw@w3.org>
Hello
I am seeking for help on using MimeParser class. My trouble is, I can get
the streams responding to every part but I cannot parse them with
MimeParser. I get an exception in notifyBeginParsing because I try to parse
it as I parse the whole reply and that is apparently wrong because there are
no HTTP version strings, status codes etc in single parts.
I am developing a system where I get multipart data from replies, not
requests and I use MimeParserReplyFactory and HttpReplyMessage.
Sample code (with the help of
http://lists.w3.org/Archives/Public/www-jigsaw/msg01250.html):
public boolean saveParts(int maxLen) throws java.io.IOException,
MimeParserException {
boolean result = true;
MimeParserReplyFactory factory = new MimeParserReplyFactory();
MimeParser parser = new MimeParser(in, factory);
// Read each part:
System.out.println("Starting to read parts...");
while (in.nextInputStream()) {
// these are themselves MIME streams (!)
file://MimeHeaders headers = (MimeHeaders) parser.parse() ;
MimeHeaders headers = (MimeHeaders) parser.parse();
System.out.println ("----- headers:") ;
headers.dump(System.out) ;
System.out.println ("----- body:") ;
int got = -1 ;
byte buffer[] = new byte[4096] ;
InputStream body = parser.getInputStream();
while ((got = body.read(buffer)) > 0)
System.out.println (new String (buffer, 0, 0, got)) ;
System.out.println ("----- end of body") ;
}
[....]
}
Output traceback:
org.w3c.www.http.HttpInvalidValueException: parseInt: No number available.
at org.w3c.www.http.HttpParser.error(HttpParser.java:34)
at org.w3c.www.http.HttpParser.parseInt(HttpParser.java:125)
at org.w3c.www.http.HttpParser.parseInt(HttpParser.java:133)
at
org.w3c.www.http.HttpReplyMessage.notifyBeginParsing(HttpReplyMessage.java:1
90)
at org.w3c.www.mime.MimeParser.parse(MimeParser.java:197)
at
ee.hansa.thnet.eservices.MimeMultipartParser.saveParts(MimeMultipartParser.j
ava:53)
at
ee.hansa.thnet.eservices.EPartnerPage.execPage(EPartnerPage.java:97)
at
ee.hansa.framework.site.SiteManager.servicePage(SiteManager.java:1178)
at ee.hansa.thnet.ThnetServlet.service(ThnetServlet.java:39)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at
org.apache.tomcat.core.ServletWrapper.doService(ServletWrapper.java:404)
at org.apache.tomcat.core.Handler.service(Handler.java:286)
at
org.apache.tomcat.core.ServletWrapper.service(ServletWrapper.java:372)
at
org.apache.tomcat.core.ContextManager.internalService(ContextManager.java:79
7)
at
org.apache.tomcat.core.ContextManager.service(ContextManager.java:743)
at
org.apache.tomcat.service.http.HttpConnectionHandler.processConnection(HttpC
onnectionHandler.java:210)
at
org.apache.tomcat.service.TcpWorkerThread.runIt(PoolTcpEndpoint.java:416)
at
org.apache.tomcat.util.ThreadPool$ControlRunnable.run(ThreadPool.java:498)
at java.lang.Thread.run(Thread.java:484)
Any help to my private address would be very much appreciated.
Thanks in advance,
Kristjan Sander
OÜ Webmedia
www.webmedia.ee
Received on Thursday, 28 February 2002 06:07:36 UTC