You're using quite old version of mongoose - please switch to the newer one. It has plenty of examples, I suggest checking out this one https://github.com/cesanta/mongoose/tree/master/examples/form_submit
On Wed, Nov 5, 2014 at 1:06 PM, Puneet Bakshi <[email protected]> wrote: > Hi, > > I am using Mongoose 3.0 and ran "test/embed.c" to check for POST request > data. I was expecting function test_post() would return "aaaaaaaaa" but > it returns some funny characters. How can I get request data sent along > with POST request? Am I missing something? Does it has do do something with > "Content-Type" field? > > *Compile embed.c* > > # cc -g -o ./embed test/embed.c mongoose.c -I. -pthread -DNO_SSL > -DLISTENING_PORT=\"23456\" > #./embed > > *Run curl to send POST requests* > > # cat /root/data > aaaaaaaaa > > # curl -X POST -H "X-Auth-Token:puneet_token" -d @/root/data > http://localhost:23456/test_post > $�� > > # curl -X POST -H "Content-Type: text/html" -H > "X-Auth-Token:puneet_token" -d @/root/data > http://localhost:23456/test_post > $�� > > # curl -X POST -H "Content-Type: text/plain" -H > "X-Auth-Token:puneet_token" -d @/root/data > http://localhost:23456/test_post > $�� > > > *Snippet from embed.c* > ::: > static void test_post(struct mg_connection *conn, > const struct mg_request_info *ri) { > const char *cl; > char *buf; > int len; > > mg_printf(conn, "%s", standard_reply); > if (strcmp(ri->request_method, "POST") == 0 && > (cl = mg_get_header(conn, "Content-Length")) != NULL) { > len = atoi(cl); > if ((buf = malloc(len)) != NULL) { > mg_write(conn, buf, len); > printf("buf: %s\n", buf); > free(buf); > } > } > } > > static const struct test_config { > enum mg_event event; > const char *uri; > void (*func)(struct mg_connection *, const struct mg_request_info *); > } test_config[] = { > {MG_NEW_REQUEST, "/test_get_header", &test_get_header}, > {MG_NEW_REQUEST, "/test_get_var", &test_get_var}, > {MG_NEW_REQUEST, "/test_get_request_info", &test_get_request_info}, > {MG_NEW_REQUEST, "/test_post", &test_post}, > {MG_HTTP_ERROR, "", &test_error}, > {0, NULL, NULL} > }; > > static void *callback(enum mg_event event, > struct mg_connection *conn, > const struct mg_request_info *request_info) { > int i; > > for (i = 0; test_config[i].uri != NULL; i++) { > if (event == test_config[i].event && > (event == MG_HTTP_ERROR || > !strcmp(request_info->uri, test_config[i].uri))) { > test_config[i].func(conn, request_info); > return "processed"; > } > } > > return NULL; > } > > int main(void) { > struct mg_context *ctx; > const char *options[] = {"listening_ports", LISTENING_PORT, NULL}; > > ctx = mg_start(callback, NULL, options); > pause(); > return 0; > } > > Regards, > ~Puneet > > -- > You received this message because you are subscribed to the Google Groups > "mongoose-users" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To post to this group, send email to [email protected]. > Visit this group at http://groups.google.com/group/mongoose-users. > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "mongoose-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/mongoose-users. For more options, visit https://groups.google.com/d/optout.
