- From: James Gallagher <jimg@dcz.dods.org>
- Date: Tue, 16 Mar 1999 08:31:55 -0800 (PST)
- To: "Gert Koning" <koningj@sol1.unisa.ac.za>
- CC: www-lib@w3.org
>"Gert" == Gert Koning <koningj@sol1.unisa.ac.za> writes:
> Hi all
> With libwww, how can I send my own headers along with a request? Or can only
> standard headers be sent? I would like to send a cookie with my request, as
> if it was coming from a browser. I know cookies are not supported by libwww
> (yet).
Here's how I do it (I'm posting this to the list in case there's a better
way). First I define a function that takes HTRequest and HTStream objects and
inserts the new header into the stream. Then, down in the code that
initializes libwww, I call HTHeader_addGenerator() passing it that function.
Note that I'm using the library from C++ but I don't think that affects this
any. Here's the code with other parts stripped away:
#define PUTBLOCK(b, l) (*target->isa->put_block)(target, b, l)
struct _HTStream {
const HTStreamClass * isa;
/* ... */
};
int
xdods_accept_types_header_gen(HTRequest *pReq, HTStream *target)
{
Connect *me = (Connect *)HTRequest_context(pReq);
String types = "XDODS-Accept-Types: " + me->get_accept_types() + "\r\n";
if (WWWTRACE)
HTTrace("DODS..... '%s'.\n", types.chars());
PUTBLOCK(types.chars(), types.length());
return HT_OK;
}
void
Connect::www_lib_init(bool www_verbose_errors, bool accept_deflate)
{
.
.
.
HTHeader_addGenerator(xdods_accept_types_header_gen);
}
James
--
__________________________________________________________________________
James Gallagher The Distributed Oceanographic Data System
jgallagher@gso.uri.edu http://unidata.ucar.edu/packages/dods
Voice: 541.757.7992 Fax: 541.758.3254
Received on Tuesday, 16 March 1999 11:32:40 UTC