HTTP Post Using C


Desktop-as-a-Service Designed for Any Cloud ? Nutanix Frame

HTTP post requests are very easy to handle by using HTML forms and other languages where they are natively supported. Basically, a request is nothing but a socket-based communication between the browser and Web server. The Hypertext Transfer Protocol, HTTP/1.1 (http://www.w3.org/Protocols/rfc2616/rfc2616.html), documents the standards.

The code in this article is based on these standards and has been tested to act as an HTTP client to make a post request and retrieve the response from Web server. Through the open socket, write and read are simple tasks to perform. Sending the requests in order and in the correct format is essential.

A client request looks like the following:

<Post program>
Accept: */*
User-Agent: Mozilla/4.0
Content-Length: <length of parameters>
Accept-Language: en-us
Accept-Encoding: gzip, deflate
Host: <hostname>
Content-Type: application/x-www-form-urlencoded
Authorization: Basic <base64 encoded login name : password>


The server responds with the header part and body part of the message.

Header part:

HTTP/1.0 200
Date: Thu 9 Dec 2004 12:23:50 GMT
Server: Archive-Appliance
Connection: close
Content-type: text/xml

The HTTP/1.0 200 status states everything went okay. For instance, it can be HTTP/1.0 404 if you made a wrong request. The body part is whatever the post script or program's output is.



  • Eng.student

    Posted by Jouni on 12/10/2012 05:30pm

    I just spent more than hour to solve why my POST array member wasn't set at all with the example code. I found that the first member gets line break (\r\n) as the first character for the member name. So, there is one, but hazardous, line break (i.e END_RQ("\r\n")) too much at the line just before the line where the parameters get sent "SEND_RQ(parameters)". That's because the content-type line includes already a one line break at the end.

  • You must have javascript enabled in order to post comments.

Leave a Comment
  • Your email address will not be published. All fields are required.

Most Popular Programming Stories

More for Developers

RSS Feeds

Thanks for your registration, follow us on our social networks to keep up-to-date