I was trying to setup a simply webservice to reply to POST requests. Earlier this was being done in tomcat which seem a little overkill to me since I already had a webserver up and running. So, a quick c program to respond to request is all that I needed. And here is the result.
/*
* =====================================================================================
*
* Filename: Login.cpp
*
* Description:
*
* Version: 1.0
* Revision: none
* Compiler: gcc
*
* Author: Amit Agarwal (),
* Organization:
*
* == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == =
*/
#include <stdio .h>
#include <stdlib .h>
#include <string .h>
#define MAXLEN 1024
#ifdef DBG
#define DEBUG(a,b) fprintf(stderr, a, b);
#else
#define DEBUG(a,b)
#endif
#define HEAD "n"
#define TAIL ""
int main(void)
{
char input[MAXLEN];
char * data;
char*lenstr;
long len;
printf("%s%c%cnn",
"Content-Type:text/xml;charset=iso-8859-1", 13, 10);
// len = getenv("QUERY_STRING"); // This is for GET
lenstr = getenv("CONTENT_LENGTH");
DEBUG( "Length string is %sn", lenstr);
if(lenstr == NULL || sscanf(lenstr,"%ld",&len)!=1 || len > MAXLEN)
printf("Error in invocation - wrong FORM probably.");
DEBUG( "Length is %ldn", len);
{
int count=0;
while ( count < len )
input[count++] = getchar();
input[count]='?';
DEBUG ( "Read characters = %dn", count)
}
//fprintf(stderr, "VAlue is %sn", input);
///unencode(input + 5 , input + len, data);
data = input;
DEBUG("Data value is %sn", data);
printf(HEAD);
printf("Everything else goes heren");
printf(TAIL);
fprintf(stderr, "Sent resp: tid[%s], eaid[%s], tcode[%s]n", tid, eaid, tcode);
}
</string></stdlib></stdio>
Additionally, the makefile:
Continue reading