From 6576b549c0acbe94e6d6d7e6c9a358c8a9fcea90 Mon Sep 17 00:00:00 2001 From: rans Date: Thu, 26 Aug 2004 17:02:24 +0000 Subject: Test http --- examples/nanohttp/helloserver.c | 103 +++++++++++------------ examples/nanohttp/helloserver.vcproj | 151 ++++++++++++++++++++++++++++++++++ examples/nanohttp/httpcpost.c | 147 +++++++++++++++++---------------- examples/nanohttp/httpcpost.vcproj | 151 ++++++++++++++++++++++++++++++++++ examples/nanohttp/httpget.c | 139 +++++++++++++++---------------- examples/nanohttp/httpget.vcproj | 151 ++++++++++++++++++++++++++++++++++ examples/nanohttp/httpgetcb.c | 125 ++++++++++++++-------------- examples/nanohttp/httpgetcb.vcproj | 151 ++++++++++++++++++++++++++++++++++ examples/nanohttp/httppost.c | 154 +++++++++++++++++------------------ examples/nanohttp/httppost.vcproj | 151 ++++++++++++++++++++++++++++++++++ examples/nanohttp/postserver.c | 133 +++++++++++++++--------------- examples/nanohttp/postserver.vcproj | 151 ++++++++++++++++++++++++++++++++++ examples/nanohttp/pthreadVC.dll | Bin 0 -> 53299 bytes examples/nanohttp/stdafx.cpp | 7 ++ examples/nanohttp/stdafx.h | 9 ++ 15 files changed, 1326 insertions(+), 397 deletions(-) create mode 100644 examples/nanohttp/helloserver.vcproj create mode 100644 examples/nanohttp/httpcpost.vcproj create mode 100644 examples/nanohttp/httpget.vcproj create mode 100644 examples/nanohttp/httpgetcb.vcproj create mode 100644 examples/nanohttp/httppost.vcproj create mode 100644 examples/nanohttp/postserver.vcproj create mode 100644 examples/nanohttp/pthreadVC.dll create mode 100644 examples/nanohttp/stdafx.cpp create mode 100644 examples/nanohttp/stdafx.h diff --git a/examples/nanohttp/helloserver.c b/examples/nanohttp/helloserver.c index 867cbe4..f30d31a 100644 --- a/examples/nanohttp/helloserver.c +++ b/examples/nanohttp/helloserver.c @@ -1,68 +1,69 @@ /****************************************************************** - * $Id: helloserver.c,v 1.1 2004/01/21 12:27:47 snowdrop Exp $ - * - * CSOAP Project: A http client/server library in C (example) - * Copyright (C) 2003 Ferhat Ayaz - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - * - * Email: ayaz@jprogrammer.net - ******************************************************************/ +* $Id: helloserver.c,v 1.2 2004/08/26 17:02:24 rans Exp $ +* +* CSOAP Project: A http client/server library in C (example) +* Copyright (C) 2003 Ferhat Ayaz +* +* This library is free software; you can redistribute it and/or +* modify it under the terms of the GNU Library General Public +* License as published by the Free Software Foundation; either +* version 2 of the License, or (at your option) any later version. +* +* This library is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +* Library General Public License for more details. +* +* You should have received a copy of the GNU Library General Public +* License along with this library; if not, write to the +* Free Software Foundation, Inc., 59 Temple Place - Suite 330, +* Boston, MA 02111-1307, USA. +* +* Email: ayaz@jprogrammer.net +******************************************************************/ #include +#ifdef WIN32 +#include +#include +#else #include - +#endif /* - SERVICE: http://host:port/hello - */ +SERVICE: http://host:port/hello +*/ void hello_world_service(httpd_conn_t *conn, hrequest_t *req) { - httpd_send_header(conn, 200, "OK", NULL); - hsocket_send(conn->sock, ""); - hsocket_send(conn->sock, "

Hello World!

"); - hsocket_send(conn->sock, ""); + httpd_send_header(conn, 200, "OK", NULL); + hsocket_send(conn->sock, ""); + hsocket_send(conn->sock, "

Hello World!

"); + hsocket_send(conn->sock, ""); } - +#ifdef WIN32 +int _tmain(int argc, _TCHAR* argv[]) +#else int main(int argc, char *argv[]) +#endif { - - if (httpd_init(argc, argv)) { - fprintf(stderr, "can not init httpd"); - return 1; - } - - if (!httpd_register("/hello", hello_world_service)) { - fprintf(stderr, "Can not register service"); - return 1; - } - - if (httpd_run()) { - fprintf(stderr, "can not run httpd"); - return 1; - } - - return 0; -} - - - + log_set_level(HLOG_VERBOSE); + if (httpd_init(argc, argv)) { + fprintf(stderr, "can not init httpd"); + return 1; + } + if (!httpd_register("/hello", hello_world_service)) { + fprintf(stderr, "Can not register service"); + return 1; + } + if (httpd_run()) { + fprintf(stderr, "can not run httpd"); + return 1; + } + return 0; +} diff --git a/examples/nanohttp/helloserver.vcproj b/examples/nanohttp/helloserver.vcproj new file mode 100644 index 0000000..683e2e2 --- /dev/null +++ b/examples/nanohttp/helloserver.vcproj @@ -0,0 +1,151 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/examples/nanohttp/httpcpost.c b/examples/nanohttp/httpcpost.c index c053e10..f7e4a52 100644 --- a/examples/nanohttp/httpcpost.c +++ b/examples/nanohttp/httpcpost.c @@ -1,89 +1,96 @@ /****************************************************************** - * $Id: httpcpost.c,v 1.1 2004/01/21 12:33:21 snowdrop Exp $ - * - * CSOAP Project: A http client/server library in C (example) - * Copyright (C) 2003 Ferhat Ayaz - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - * - * Email: ayaz@jprogrammer.net - ******************************************************************/ +* $Id: httpcpost.c,v 1.2 2004/08/26 17:02:24 rans Exp $ +* +* CSOAP Project: A http client/server library in C (example) +* Copyright (C) 2003 Ferhat Ayaz +* +* This library is free software; you can redistribute it and/or +* modify it under the terms of the GNU Library General Public +* License as published by the Free Software Foundation; either +* version 2 of the License, or (at your option) any later version. +* +* This library is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +* Library General Public License for more details. +* +* You should have received a copy of the GNU Library General Public +* License along with this library; if not, write to the +* Free Software Foundation, Inc., 59 Temple Place - Suite 330, +* Boston, MA 02111-1307, USA. +* +* Email: ayaz@jprogrammer.net +******************************************************************/ #include +#ifdef WIN32 +#include +#include +#else #include +#endif - - +#ifdef WIN32 +int _tmain(int argc, _TCHAR* argv[]) +#else int main(int argc, char *argv[]) +#endif { - httpc_conn_t *conn; - hresponse_t *res; - hpair_t *pair; - char postdata[1054]; - int status; + httpc_conn_t *conn; + hresponse_t *res; + hpair_t *pair; + char postdata[1054]; + int status; - if (argc < 2) { - fprintf(stderr, "usage %s \n", argv[0]); - exit(1); - } + if (argc < 2) { + fprintf(stderr, "usage %s \n", argv[0]); + exit(1); + } - log_set_level(HLOG_VERBOSE); + log_set_level(HLOG_VERBOSE); - conn = httpc_new(); + conn = httpc_new(); - log_debug1("Opening connection"); - status = httpc_post_open(conn, argv[1]); - if (status) { - log_error2("Can not open connection (%d)", status); - return 1; - } + log_debug1("Opening connection"); + status = httpc_post_open(conn, argv[1]); + if (status) { + log_error2("Can not open connection (%d)", status); + return 1; + } - while (1) { - printf("Enter chunk (max 1024): "); - gets(postdata); - if (!strcmp(postdata, ".")) break; - log_debug1("sending chunk ..."); - httpc_post_send(conn, postdata, strlen(postdata)); - } + while (1) { + printf("Enter chunk (max 1024): "); + gets(postdata); + if (!strcmp(postdata, ".")) break; + log_debug1("sending chunk ..."); + httpc_post_send(conn, postdata, strlen(postdata)); + } - log_debug1("please wait ..."); - res = httpc_post_finish(conn); + log_debug1("please wait ..."); + res = httpc_post_finish(conn); - if (res != NULL) { - log_info2("Spec : '%s'", res->spec); - log_info2("Status: %d", res->errcode); - log_info2("Desc : '%s'", res->desc); + if (res != NULL) { + log_info2("Spec : '%s'", res->spec); + log_info2("Status: %d", res->errcode); + log_info2("Desc : '%s'", res->desc); - if (res->body) { - pair = res->header; - while (pair != NULL) { - log_debug3("%s: %s", pair->key, pair->value); - pair = pair->next; - } - puts(res->body); - } - else - log_error1("body is null"); + if (res->body) { + pair = res->header; + while (pair != NULL) { + log_debug3("%s: %s", pair->key, pair->value); + pair = pair->next; + } + puts(res->body); + } + else + log_error1("body is null"); - hresponse_free(res); - } else { - log_error1("response object is null"); - } + hresponse_free(res); + } else { + log_error1("response object is null"); + } - httpc_free(conn); - return 0; + httpc_free(conn); + return 0; } diff --git a/examples/nanohttp/httpcpost.vcproj b/examples/nanohttp/httpcpost.vcproj new file mode 100644 index 0000000..0dbd521 --- /dev/null +++ b/examples/nanohttp/httpcpost.vcproj @@ -0,0 +1,151 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/examples/nanohttp/httpget.c b/examples/nanohttp/httpget.c index 4eab70e..319ff7f 100644 --- a/examples/nanohttp/httpget.c +++ b/examples/nanohttp/httpget.c @@ -1,77 +1,78 @@ /****************************************************************** - * $Id: httpget.c,v 1.2 2003/12/18 12:23:44 snowdrop Exp $ - * - * CSOAP Project: A http client/server library in C (example) - * Copyright (C) 2003 Ferhat Ayaz - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - * - * Email: ayaz@jprogrammer.net - ******************************************************************/ +* $Id: httpget.c,v 1.3 2004/08/26 17:02:24 rans Exp $ +* +* CSOAP Project: A http client/server library in C (example) +* Copyright (C) 2003 Ferhat Ayaz +* +* This library is free software; you can redistribute it and/or +* modify it under the terms of the GNU Library General Public +* License as published by the Free Software Foundation; either +* version 2 of the License, or (at your option) any later version. +* +* This library is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +* Library General Public License for more details. +* +* You should have received a copy of the GNU Library General Public +* License along with this library; if not, write to the +* Free Software Foundation, Inc., 59 Temple Place - Suite 330, +* Boston, MA 02111-1307, USA. +* +* Email: ayaz@jprogrammer.net +******************************************************************/ #include +#ifdef WIN32 +#include +#include +#else #include +#endif +#ifdef WIN32 +int _tmain(int argc, _TCHAR* argv[]) +#else int main(int argc, char *argv[]) +#endif { - httpc_conn_t *conn; - hresponse_t *res; - hpair_t *pair; - - if (argc < 2) { - fprintf(stderr, "usage %s \n", argv[0]); - exit(1); - } - - log_set_level(HLOG_VERBOSE); - - conn = httpc_new(); - res = httpc_get(conn, argv[1]); - - if (res != NULL) { - log_info2("Spec : '%s'", res->spec); - log_info2("Status: %d", res->errcode); - log_info2("Desc : '%s'", res->desc); - - if (res->body) { - pair = res->header; - while (pair != NULL) { - log_debug3("%s: %s", pair->key, pair->value); - pair = pair->next; - } - - puts(res->body); - } - else - log_error1("body is null"); - - hresponse_free(res); - } else { - log_error1("response object is null"); - } - - httpc_free(conn); - return 0; -} - - - - - - - - + httpc_conn_t *conn; + hresponse_t *res; + hpair_t *pair; + + if (argc < 2) { + fprintf(stderr, "usage %s \n", argv[0]); + exit(1); + } + + log_set_level(HLOG_VERBOSE); + + conn = httpc_new(); + res = httpc_get(conn, argv[1]); + + if (res != NULL) { + log_info2("Spec : '%s'", res->spec); + log_info2("Status: %d", res->errcode); + log_info2("Desc : '%s'", res->desc); + + if (res->body) { + pair = res->header; + while (pair != NULL) { + log_debug3("%s: %s", pair->key, pair->value); + pair = pair->next; + } + + puts(res->body); + } + else + log_error1("body is null"); + + hresponse_free(res); + } else { + log_error1("response object is null"); + } + + httpc_free(conn); + return 0; +} \ No newline at end of file diff --git a/examples/nanohttp/httpget.vcproj b/examples/nanohttp/httpget.vcproj new file mode 100644 index 0000000..b1201ad --- /dev/null +++ b/examples/nanohttp/httpget.vcproj @@ -0,0 +1,151 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/examples/nanohttp/httpgetcb.c b/examples/nanohttp/httpgetcb.c index 94f5b9c..9236bb4 100644 --- a/examples/nanohttp/httpgetcb.c +++ b/examples/nanohttp/httpgetcb.c @@ -1,89 +1,90 @@ /****************************************************************** - * $Id: httpgetcb.c,v 1.2 2003/12/18 12:23:44 snowdrop Exp $ - * - * CSOAP Project: A http client/server library in C (example) - * Copyright (C) 2003 Ferhat Ayaz - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - * - * Email: ayaz@jprogrammer.net - ******************************************************************/ +* $Id: httpgetcb.c,v 1.3 2004/08/26 17:02:24 rans Exp $ +* +* CSOAP Project: A http client/server library in C (example) +* Copyright (C) 2003 Ferhat Ayaz +* +* This library is free software; you can redistribute it and/or +* modify it under the terms of the GNU Library General Public +* License as published by the Free Software Foundation; either +* version 2 of the License, or (at your option) any later version. +* +* This library is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +* Library General Public License for more details. +* +* You should have received a copy of the GNU Library General Public +* License along with this library; if not, write to the +* Free Software Foundation, Inc., 59 Temple Place - Suite 330, +* Boston, MA 02111-1307, USA. +* +* Email: ayaz@jprogrammer.net +******************************************************************/ #include +#ifdef WIN32 +#include +#include +#else #include +#endif FILE *fd; void my_start_callback(httpc_conn_t *conn, void *userdata, - hpair_t *header, const char *spec, - int errcode, const char *desc) + hpair_t *header, const char *spec, + int errcode, const char *desc) { - hpair_t *pair; + hpair_t *pair; - log_debug2("Spec : '%s'", spec); - log_debug2("Status: %d", errcode); - log_debug2("Desc : '%s'", desc); + log_debug2("Spec : '%s'", spec); + log_debug2("Status: %d", errcode); + log_debug2("Desc : '%s'", desc); - pair = header; - while (pair != NULL) { - log_debug3("%s: '%s'", pair->key, pair->value); - pair = pair->next; - } + pair = header; + while (pair != NULL) { + log_debug3("%s: '%s'", pair->key, pair->value); + pair = pair->next; + } - log_debug1("\n"); + log_debug1("\n"); } void my_callback(int counter, httpc_conn_t* conn, - void *userdata, int size, char *buffer) + void *userdata, int size, char *buffer) { - /* print body */ - if (size > 0) fwrite(buffer, size, 1, fd); + /* print body */ + if (size > 0) fwrite(buffer, size, 1, fd); } - +#ifdef WIN32 +int _tmain(int argc, _TCHAR* argv[]) +#else int main(int argc, char *argv[]) +#endif { - httpc_conn_t *conn; + httpc_conn_t *conn; - if (argc < 3) { - fprintf(stderr, "usage %s \n", argv[0]); - exit(1); - } + if (argc < 3) { + fprintf(stderr, "usage %s \n", argv[0]); + exit(1); + } - fd = fopen(argv[2], "w"); - if (fd == NULL) { - fprintf(stderr, "can not open '%s'\n", argv[2]); - exit(1); - } + fd = fopen(argv[2], "w"); + if (fd == NULL) { + fprintf(stderr, "can not open '%s'\n", argv[2]); + exit(1); + } - conn = httpc_new(); - /* httpc_set_header(conn, HEADER_TRANSFER_ENCODING, "chunked");*/ - httpc_get_cb(conn, argv[1], my_start_callback, my_callback, NULL); - httpc_free(conn); + conn = httpc_new(); + /* httpc_set_header(conn, HEADER_TRANSFER_ENCODING, "chunked");*/ + httpc_get_cb(conn, argv[1], my_start_callback, my_callback, NULL); + httpc_free(conn); - fclose(fd); + fclose(fd); - log_debug1("finished"); + log_debug1("finished"); - return 0; + return 0; } - - - - - - - diff --git a/examples/nanohttp/httpgetcb.vcproj b/examples/nanohttp/httpgetcb.vcproj new file mode 100644 index 0000000..d774f65 --- /dev/null +++ b/examples/nanohttp/httpgetcb.vcproj @@ -0,0 +1,151 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/examples/nanohttp/httppost.c b/examples/nanohttp/httppost.c index fe7fdb8..9a28442 100644 --- a/examples/nanohttp/httppost.c +++ b/examples/nanohttp/httppost.c @@ -1,86 +1,84 @@ /****************************************************************** - * $Id: httppost.c,v 1.2 2004/01/06 08:04:32 snowdrop Exp $ - * - * CSOAP Project: A http client/server library in C (example) - * Copyright (C) 2003 Ferhat Ayaz - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - * - * Email: ayaz@jprogrammer.net - ******************************************************************/ +* $Id: httppost.c,v 1.3 2004/08/26 17:02:24 rans Exp $ +* +* CSOAP Project: A http client/server library in C (example) +* Copyright (C) 2003 Ferhat Ayaz +* +* This library is free software; you can redistribute it and/or +* modify it under the terms of the GNU Library General Public +* License as published by the Free Software Foundation; either +* version 2 of the License, or (at your option) any later version. +* +* This library is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +* Library General Public License for more details. +* +* You should have received a copy of the GNU Library General Public +* License along with this library; if not, write to the +* Free Software Foundation, Inc., 59 Temple Place - Suite 330, +* Boston, MA 02111-1307, USA. +* +* Email: ayaz@jprogrammer.net +******************************************************************/ #include +#ifdef WIN32 +#include +#include +#else #include +#endif - - - +#ifdef WIN32 +int _tmain(int argc, _TCHAR* argv[]) +#else int main(int argc, char *argv[]) +#endif { - httpc_conn_t *conn; - hresponse_t *res; - hpair_t *pair; - char postdata[1054]; - - if (argc < 2) { - fprintf(stderr, "usage %s \n", argv[0]); - exit(1); - } - - log_set_level(HLOG_VERBOSE); - - printf("\nEnter post data (max 1054): "); - gets(postdata); - printf("\nSending data to '%s'. Please wait ...\n ", argv[1]); - - log_debug2("you entered: '%s'", postdata); - log_debug2("content-length: %d", strlen(postdata)); - - conn = httpc_new(); - res = httpc_post(conn, argv[1], strlen(postdata), postdata); - - if (res != NULL) { - log_info2("Spec : '%s'", res->spec); - log_info2("Status: %d", res->errcode); - log_info2("Desc : '%s'", res->desc); - - if (res->body) { - pair = res->header; - while (pair != NULL) { - log_debug3("%s: %s", pair->key, pair->value); - pair = pair->next; - } - puts(res->body); - } - else - log_error1("body is null"); - - hresponse_free(res); - } else { - log_error1("response object is null"); - } - - httpc_free(conn); - return 0; + httpc_conn_t *conn; + hresponse_t *res; + hpair_t *pair; + char postdata[1054]; + + if (argc < 2) { + fprintf(stderr, "usage %s \n", argv[0]); + exit(1); + } + + log_set_level(HLOG_VERBOSE); + + printf("\nEnter post data (max 1054): "); + gets(postdata); + printf("\nSending data to '%s'. Please wait ...\n ", argv[1]); + + log_debug2("you entered: '%s'", postdata); + log_debug2("content-length: %d", strlen(postdata)); + + conn = httpc_new(); + res = httpc_post(conn, argv[1], strlen(postdata), postdata); + + if (res != NULL) { + log_info2("Spec : '%s'", res->spec); + log_info2("Status: %d", res->errcode); + log_info2("Desc : '%s'", res->desc); + + if (res->body) { + pair = res->header; + while (pair != NULL) { + log_debug3("%s: %s", pair->key, pair->value); + pair = pair->next; + } + puts(res->body); + } + else + log_error1("body is null"); + + hresponse_free(res); + } else { + log_error1("response object is null"); + } + + httpc_free(conn); + return 0; } - - - - - - - - diff --git a/examples/nanohttp/httppost.vcproj b/examples/nanohttp/httppost.vcproj new file mode 100644 index 0000000..e598907 --- /dev/null +++ b/examples/nanohttp/httppost.vcproj @@ -0,0 +1,151 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/examples/nanohttp/postserver.c b/examples/nanohttp/postserver.c index a002f45..2a813b5 100644 --- a/examples/nanohttp/postserver.c +++ b/examples/nanohttp/postserver.c @@ -1,90 +1,89 @@ /****************************************************************** - * $Id: postserver.c,v 1.1 2004/01/30 16:38:49 snowdrop Exp $ - * - * CSOAP Project: A http client/server library in C (example) - * Copyright (C) 2003 Ferhat Ayaz - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - * - * Email: ayaz@jprogrammer.net - ******************************************************************/ +* $Id: postserver.c,v 1.2 2004/08/26 17:02:24 rans Exp $ +* +* CSOAP Project: A http client/server library in C (example) +* Copyright (C) 2003 Ferhat Ayaz +* +* This library is free software; you can redistribute it and/or +* modify it under the terms of the GNU Library General Public +* License as published by the Free Software Foundation; either +* version 2 of the License, or (at your option) any later version. +* +* This library is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +* Library General Public License for more details. +* +* You should have received a copy of the GNU Library General Public +* License along with this library; if not, write to the +* Free Software Foundation, Inc., 59 Temple Place - Suite 330, +* Boston, MA 02111-1307, USA. +* +* Email: ayaz@jprogrammer.net +******************************************************************/ #include +#ifdef WIN32 +#include +#include +#else #include - - +#endif /* - SERVICE: http://host:port/postserver - */ +SERVICE: http://host:port/postserver +*/ void post_service(httpd_conn_t *conn, hrequest_t *req) { - char *postdata; - long received; + char *postdata; + long received; - postdata = httpd_get_postdata(conn, req, &received, -1); + postdata = httpd_get_postdata(conn, req, &received, -1); - if (postdata != NULL) { + if (postdata != NULL) { - httpd_send_header(conn, 200, "OK", NULL); - hsocket_send(conn->sock, ""); - hsocket_send(conn->sock, "

You Posted:


"); - hsocket_nsend(conn->sock, postdata, received); - hsocket_send(conn->sock, ""); - free(postdata); + httpd_send_header(conn, 200, "OK", NULL); + hsocket_send(conn->sock, ""); + hsocket_send(conn->sock, "

You Posted:


"); + hsocket_nsend(conn->sock, postdata, received); + hsocket_send(conn->sock, ""); + free(postdata); - } else { + } else { - httpd_send_header(conn, 200, "OK", NULL); - hsocket_send(conn->sock, ""); - hsocket_send(conn->sock, "
"); - hsocket_send(conn->sock, "Enter Postdata: "); - hsocket_send(conn->sock, ""); - hsocket_send(conn->sock, ""); + httpd_send_header(conn, 200, "OK", NULL); + hsocket_send(conn->sock, ""); + hsocket_send(conn->sock, ""); + hsocket_send(conn->sock, "Enter Postdata: "); + hsocket_send(conn->sock, ""); + hsocket_send(conn->sock, ""); - } + } } - +#ifdef WIN32 +int _tmain(int argc, _TCHAR* argv[]) +#else int main(int argc, char *argv[]) +#endif { - - if (httpd_init(argc, argv)) { - fprintf(stderr, "can not init httpd"); - return 1; - } - - if (!httpd_register("/postserver", post_service)) { - fprintf(stderr, "Can not register service"); - return 1; - } - - if (httpd_run()) { - fprintf(stderr, "can not run httpd"); - return 1; - } - - return 0; -} - - - - + log_set_level(HLOG_VERBOSE); + if (httpd_init(argc, argv)) { + fprintf(stderr, "can not init httpd"); + return 1; + } + if (!httpd_register("/", post_service)) { + fprintf(stderr, "Can not register service"); + return 1; + } + if (httpd_run()) { + fprintf(stderr, "can not run httpd"); + return 1; + } + return 0; +} diff --git a/examples/nanohttp/postserver.vcproj b/examples/nanohttp/postserver.vcproj new file mode 100644 index 0000000..fcd5983 --- /dev/null +++ b/examples/nanohttp/postserver.vcproj @@ -0,0 +1,151 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/examples/nanohttp/pthreadVC.dll b/examples/nanohttp/pthreadVC.dll new file mode 100644 index 0000000..4fc1f00 Binary files /dev/null and b/examples/nanohttp/pthreadVC.dll differ diff --git a/examples/nanohttp/stdafx.cpp b/examples/nanohttp/stdafx.cpp new file mode 100644 index 0000000..f0977a2 --- /dev/null +++ b/examples/nanohttp/stdafx.cpp @@ -0,0 +1,7 @@ +// stdafx.cpp : source file that includes just the standard includes +// csoapserver.pch will be the pre-compiled header +// stdafx.obj will contain the pre-compiled type information + +#include "stdafx.h" + + diff --git a/examples/nanohttp/stdafx.h b/examples/nanohttp/stdafx.h new file mode 100644 index 0000000..f3469f3 --- /dev/null +++ b/examples/nanohttp/stdafx.h @@ -0,0 +1,9 @@ +// stdafx.h : include file for standard system include files, +// or project specific include files that are used frequently, but +// are changed infrequently +// + +#include +#include + +// TODO: reference additional headers your program requires here -- cgit v1.1-32-gdbae