- From: Stewart Johnson <stewart.johnson@ieee.org>
- Date: Wed, 28 May 2003 02:55:04 +0930
- To: <nin0@gadjahmada.edu>
- Cc: www-lib@w3.org
Phooey. I just noticed: http://www.w3.org/Library/src/HTProfil.html "Do not use preemptive profiles if you are doing PUT or POST requests." So I've switched back to HTProfile_newRobot(). On Wednesday 28 May 2003 2:51 am, Stewart Johnson wrote: > Hi Nino -- > > It just so happens I'm working on this right now. Here's what I'm working > with at the moment (cmments below): > > --------- begin code ---------- > #include "WWWLib.h" > #include "WWWInit.h" > #include "WWWSSL.h" > > int main () > { > HTRequest * request = NULL; > HTAnchor * anchor = NULL; > HTAssocList * formfields = NULL; > char uri[] = "https://accounts.internode.on.net/cgi-bin/padsl-usage"; > char arg1[] = "username=XXXX"; > char arg2[] = "password=YYYY"; > formfields = HTAssocList_new(); > HTParseFormInput(formfields, arg1); > HTParseFormInput(formfields, arg2); > > /* create a new pre-emptive client, doesn't use event loop */ > HTProfile_newPreemptiveClient("Sample Post Client", "0.1"); > > /* SSL initialisation */ > HTSSL_protMethod_set (HTSSL_V23); > HTSSL_verifyDepth_set (2); > HTSSLhttps_init(NO); > > /* Create a request */ > request = HTRequest_new(); > > /* Get an anchor object for the URI */ > anchor = HTAnchor_findAddress(uri); > > /* Post the data and get the result in a chunk */ > HTChunk * result = HTPostFormAnchorToChunk(formfields, anchor, > request); > > printf("The result from the server was: \"%s\"\n", > HTChunk_data(result)); > > HTAssocList_delete(formfields);/* Clean up the form fields */ > HTRequest_delete(request); /* Destroy the Request object */ > HTSSLhttps_terminate(); /* Unregister SSL app support */ > HTProfile_delete(); /* Terminate HTTP client */ > return 0; > } > > --------- end code ---------- > > This seems to be heading down the right track, I'm no longer using the > event loop. I got the idea of using HTProfile_newPreemptiveClient from: > > http://www.w3.org/Library/Examples/libapp_4.c > > The only problem now is that it's not waiting for the request to complete: > the request is deleted before it's finished being handled: > [stew@uno cpp]$ g++ -o runme simple.c `libwww-config --cflags` > `libwww-config --libs` -L/usr/lib -lwwwssl > [stew@uno]$ ./runme > Looking up accounts.internode.on.net > Looking up accounts.internode.on.net > Contacting accounts.internode.on.net > The result from the server was: "(null)" > Interrupted! > > Like I said, I'm still working on it! Any ideas appreciated! > > Stewart. > > On Wednesday 28 May 2003 2:28 am, you wrote: > > Dear Stewart, > > I'm having the same problem too.. > > > > ---------- Original Message ---------------------------------- > > From: Stewart Johnson <stewart.johnson@ieee.org> > > Date: Mon, 26 May 2003 01:27:08 +0930 > > > > >G'day -- > > > > > >I've been using the the W3C libwww for a little while now, and I've > > > generally had success. I'm having trouble figuring a new problem out, > > > and I'm looking for some advice. Hopefully someone can find the time to > > > steer me in the right direction! :^) > > > > > >The tool I'm currently writing only ever needs to perform a POST request > > > on a single server. It does this request once every half an hour, so > > > for all intents and purposes the requests happen in isolation. I'm > > > writing this tool in C++. > > > > > >I have everything working okay, but I can't help but think there's an > > > easier (and less verbose) way to do it. I'm initialising the library, > > > creating my HTRequest and calling HTPostFormAnchorToChunk to get my > > > result. That all seems correct, my problem is the next part: > > > > > >I'm entering the eventloop using HTEventList_loop. I've previously > > > registered a terminate_handler callback to catch the HTResponse of my > > > HTRequest and save the status in the HTRequest's context, and then call > > > HTEventList_stopLoop. That seems like a whole bunch of unnecessary > > > effort. In addition, it feels ugly because the terminate_handler is a > > > static function. > > > > > >Is it easy to replace the HTEventList_loop? Is there another way of > > > firing off my single HTRequest and catching the response, preferably > > > all within the one function, rather than using a callback? > > > > > >Any advice is greatly appreciated. > > > > > >TIA, > > >Stewart.
Received on Tuesday, 27 May 2003 13:25:31 UTC