- From: Henrik Frystyk Nielsen <frystyk@w3.org>
- Date: Thu, 11 Jan 1996 15:50:33 -0500
- To: Laurent Vinesse <lvinesse@jouve.fr>
- Cc: www-lib@w3.org
> Two (probably very basic) questions. > > I fetch a document from HTTP to a file using a piece of code based on > libapp_3.c. FYI: The Library has three very small examples on how to set it up and access a document using HTTP. You can find these examples (called libapp_[1..3].c) in the distribution file and on our server at http://www.w3.org/pub/WWW/Library/Examples/ > Would anybody explain me how to strip the : > - MIME header into structured fields The metainformation is normally part of the anchor object but in order to get MIME headers parsed, you must register the MIME parser stream to convert rfc822 formatted messages. You register converters through the HTConverter methods just as is alerady showed in the example. I have included the full version of the small program below. > - the body of document The MIME parser stream takes out the metainformation and adds it to the anchor. When all the metainformation is parsed, thestream goes into transparent mode and lets the body pass untouched. > Looking at the documentation, I guess this is certainly possible using > anchors & request objects but I have just not found how to implement it. > > If I want the output stream in memory buffer rather than in a file, I have > see in the FAQs & mailing list archive that several method are described. > One of the method suggest to rewrite a HTMemoryBuffer Stream-derived object > but we could do it directly with HTExtParse, did anybody use this > successfuly and how? This is a good way of doing it. Instead of registrering the "save to file" stream you just swap the stream so that the external buffer stream is called instead. Then you can modify the buffer as you like. 0 \ / -- CLIP -- CLIP -- CLIP -- x -- CLIP -- CLIP -- CLIP -- CLIP -- CLIP -- CLIP -- / \ 0 #include "WWWLib.h" #include "HTTP.h" #include "WWWMIME.h" /* Include the MIME parser interface */ #include "HTDialog.h" int main (int argc, char ** argv) { HTList * converters = HTList_new(); HTRequest * request = HTRequest_new(); /* Create a request object */ WWWTRACE = SHOW_ALL_TRACE; HTLibInit("TestApp", "1.0"); HTProtocol_add("http", YES, HTLoadHTTP, NULL); /* Registration of MIME parser */ HTConversion_add(converters, "message/rfc822", "*/*", HTMIMEConvert, 1.0, 0.0, 0.0); HTConversion_add(converters, "*/*", "www/present", HTSaveLocally, 1.0, 0.0, 0.0); HTFormat_setConversion(converters); HTAlert_add(HTPrompt, HT_A_PROMPT); if (argc == 2) { HTLoadAbsolute(argv[1], request); } else printf("Type the URL to fetch\n"); HTRequest_delete(request); /* Delete the request object */ HTConversion_deleteAll(converters); HTLibTerminate(); return 0; } -- Henrik Frystyk Nielsen, <frystyk@w3.org> World-Wide Web Consortium, MIT/LCS NE43-356 545 Technology Square, Cambridge MA 02139, USA
Received on Thursday, 11 January 1996 15:50:43 UTC