- 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