- From: Christian Ruetgers <chr@1komma6.com>
- Date: Mon, 23 Aug 1999 13:43:38 -0400 (EDT)
- To: www-lib@w3.org
- Message-ID: <37C17E40.EB504F04@1komma6.com>
Hi, I try to get the response code from a server and, when getting a redirect-error, the redirection adress. I've made a program, based on a code-snippet on this list, to get the approbiate information. I do not want to use any terminate_handler. I attach my code. Any help? -- ch. | Christian Ruetgers | | 1komma6- Multimediale Dienstleistungen GmbH | | Fon: (0251) 57297 Fax: 57296 Priv: 236076 | | visit "http://www.1komma6.com"! |
#include <wwwconf.h> #include <WWWLib.h> #include <WWWHTTP.h> #include <WWWInit.h> /* Name and version of the program. */ #define PROG_NAME "urlbot" #define PROG_VERS "1.0" PRIVATE HTErrorMessage HTErrors[HTERR_ELEMENTS] = {HTERR_ENGLISH_INITIALIZER}; int main (int argc, char *argv[]) { HTList *pr_converters = NULL; HTList *pr_transfer_encodings = NULL; HTList *pr_content_encodings = NULL; HTRequest *pr_request = NULL; char *pc_cwd = NULL; char *pc_absolute_url = NULL; HTAnchor * dst = NULL; HTList *pr_list = NULL; int err_code = 0; HTLibInit (PROG_NAME, PROG_VERS); HTAlertInit (); HTAlert_setInteractive (NO); pr_converters = HTList_new (); pr_transfer_encodings = HTList_new (); pr_content_encodings = HTList_new (); HTTransportInit (); HTProtocolInit (); HTBind_init (); HTNet_setMaxSocket (32); HTNetInit (); HTAAInit (); HTProxy_getEnvVar (); HTHost_setEventTimeout (30000); HTConverterInit (pr_converters); HTFormat_setConversion (pr_converters); HTTransferEncoderInit (pr_transfer_encodings); HTFileInit (); /* Set up the basic request structure. */ pr_request = HTRequest_new (); HTRequest_setGnHd (pr_request, 0); HTRequest_setRqHd (pr_request, HT_C_HOST + HT_C_USER_AGENT); HTRequest_setRsHd (pr_request, 0); HTRequest_setEnHd (pr_request, 0); HTRequest_setMethod (pr_request, METHOD_GET); HTRequest_setOutputFormat (pr_request, WWW_SOURCE); HTRequest_setPreemptive (pr_request, YES); /* Get an anchor object for the destination URI */ dst = HTAnchor_findAddress(argv[1]); /* POST the source to the dest */ HTHeadAnchor(dst, pr_request); // HTHeadAbsolute (argv[1], pr_request); { char * addr = HTAnchor_address((HTAnchor *) HTRequest_anchor(pr_request)); char * re_addr = HTAnchor_address(HTResponse_redirection(HTRequest_response (pr_request))); HTPrint("The address `%s\' was redirected to `%s\'\n", addr, re_addr ? re_addr : "<none>"); } /* ** Get the error code of the request. */ pr_list = HTRequest_error (pr_request); if (pr_list != NULL) { HTError *pr_error; pr_error = (HTError *) HTList_firstObject (pr_list); err_code = HTErrors[HTError_index (pr_error)].code; fprintf (stdout, "GOT AN ERROR (%d-%s)\n", err_code, HTErrors[HTError_index (pr_error)].msg); } /* Deallocate allocated resources. */ HTRequest_delete (pr_request); HTFormat_deleteAll (); HT_FREE (pc_cwd); HT_FREE (pc_absolute_url); /* Terminate Libwww and exit */ HTProfile_delete (); return err_code; }
Received on Monday, 23 August 1999 15:37:25 UTC