Object
|
+---DHTTPClient
The DHTTPClient class implements a HTTP client. The class does not support the POST and PUT requests. Also the responses with a chunked transfer encoding are not handled.
#include <stdio.h>
#include "ofc/DHTTPClient.h"
int main(int argc, char *argv[])
{
DHTTPClient *client = [DHTTPClient new];
DURL *url = [DURL new];
DHashIterator *iter;
[url url :"http://ofc.dvoudheusden.net/index.html"];
printf("Send the request for a http page..\n");
if (![client sendStartRequest :DHC_GET :url]) // send a GET for index.html
printf("Error in sendStartRequest..\n");
if (![client sendConnectionHeader :"close"]) // send that the connection should be closed
printf("Error in sendConnectionHeader..\n");
if (![client sendUserAgentHeader :"libofc"]) // send the user agent
printf("Error in sendUserAgentHeader..\n");
if (![client sendEndRequest]) // send the end of the request
printf("Error in sendEndRequest..\n");
printf("Wait for the response of the server..\n");
if ([client receiveReply]) // wait for the response of the server
{
printf("Response reason:%d http version:%d.%d body length:%ld\n",
[client reason], [client peerMajor], [client peerMinor], [client bodyLength]);
iter = [client headers]; // print the headers in the reply
if (iter != nil)
{
DText *value = [iter first];
printf("Headers in reply:\n");
while (value != nil)
{
DText *key = [iter key];
printf("%s = %s\n", [key cstring], [value cstring]);
value = [iter next];
}
[iter free];
}
else
printf("No headers in reply..\n");
}
else
printf("Error in receiveReply..\n");
[client free]; // Cleanup
[url free];
return 0;
}