diff options
Diffstat (limited to 'examples')
-rw-r--r-- | examples/nanohttp/helloserver.c | 103 | ||||
-rw-r--r-- | examples/nanohttp/helloserver.vcproj | 151 | ||||
-rw-r--r-- | examples/nanohttp/httpcpost.c | 147 | ||||
-rw-r--r-- | examples/nanohttp/httpcpost.vcproj | 151 | ||||
-rw-r--r-- | examples/nanohttp/httpget.c | 139 | ||||
-rw-r--r-- | examples/nanohttp/httpget.vcproj | 151 | ||||
-rw-r--r-- | examples/nanohttp/httpgetcb.c | 125 | ||||
-rw-r--r-- | examples/nanohttp/httpgetcb.vcproj | 151 | ||||
-rw-r--r-- | examples/nanohttp/httppost.c | 154 | ||||
-rw-r--r-- | examples/nanohttp/httppost.vcproj | 151 | ||||
-rw-r--r-- | examples/nanohttp/postserver.c | 133 | ||||
-rw-r--r-- | examples/nanohttp/postserver.vcproj | 151 | ||||
-rw-r--r-- | examples/nanohttp/pthreadVC.dll | bin | 0 -> 53299 bytes | |||
-rw-r--r-- | examples/nanohttp/stdafx.cpp | 7 | ||||
-rw-r--r-- | examples/nanohttp/stdafx.h | 9 |
15 files changed, 1326 insertions, 397 deletions
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 <nanohttp/nanohttp-server.h> +#ifdef WIN32 +#include <stdafx.h> +#include <malloc.h> +#else #include <stdio.h> - +#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, "<html><body>"); - hsocket_send(conn->sock, "<h3>Hello World!</h3>"); - hsocket_send(conn->sock, "</body></html>"); + httpd_send_header(conn, 200, "OK", NULL); + hsocket_send(conn->sock, "<html><body>"); + hsocket_send(conn->sock, "<h3>Hello World!</h3>"); + hsocket_send(conn->sock, "</body></html>"); } - +#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 @@ +<?xml version="1.0" encoding="Windows-1252"?> +<VisualStudioProject + ProjectType="Visual C++" + Version="7.10" + Name="helloserver" + ProjectGUID="{3D4C3C19-2166-4017-9103-D30AB5DD2AB2}" + Keyword="Win32Proj"> + <Platforms> + <Platform + Name="Win32"/> + </Platforms> + <Configurations> + <Configuration + Name="Debug|Win32" + OutputDirectory="Debug" + IntermediateDirectory="Debug" + ConfigurationType="1" + CharacterSet="2"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="..\..\,.\" + PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE" + MinimalRebuild="TRUE" + BasicRuntimeChecks="3" + RuntimeLibrary="5" + UsePrecompiledHeader="0" + WarningLevel="3" + Detect64BitPortabilityProblems="TRUE" + DebugInformationFormat="4" + CompileAs="2"/> + <Tool + Name="VCCustomBuildTool"/> + <Tool + Name="VCLinkerTool" + AdditionalDependencies="nanohttp.lib pthreadvc.lib" + OutputFile="$(OutDir)/helloserver.exe" + LinkIncremental="2" + AdditionalLibraryDirectories="..\..\nanohttp\debug,..\..\" + GenerateDebugInformation="TRUE" + ProgramDatabaseFile="$(OutDir)/helloserver.pdb" + SubSystem="1" + TargetMachine="1"/> + <Tool + Name="VCMIDLTool"/> + <Tool + Name="VCPostBuildEventTool"/> + <Tool + Name="VCPreBuildEventTool"/> + <Tool + Name="VCPreLinkEventTool"/> + <Tool + Name="VCResourceCompilerTool"/> + <Tool + Name="VCWebServiceProxyGeneratorTool"/> + <Tool + Name="VCXMLDataGeneratorTool"/> + <Tool + Name="VCWebDeploymentTool"/> + <Tool + Name="VCManagedWrapperGeneratorTool"/> + <Tool + Name="VCAuxiliaryManagedWrapperGeneratorTool"/> + </Configuration> + <Configuration + Name="Release|Win32" + OutputDirectory="Release" + IntermediateDirectory="Release" + ConfigurationType="1" + CharacterSet="2"> + <Tool + Name="VCCLCompilerTool" + AdditionalIncludeDirectories="..\..\,.\" + PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE" + RuntimeLibrary="4" + UsePrecompiledHeader="0" + WarningLevel="3" + Detect64BitPortabilityProblems="TRUE" + DebugInformationFormat="3"/> + <Tool + Name="VCCustomBuildTool"/> + <Tool + Name="VCLinkerTool" + AdditionalDependencies="nanohttp.lib pthreadvc.lib" + OutputFile="$(OutDir)/helloserver.exe" + LinkIncremental="1" + AdditionalLibraryDirectories="..\..\nanohttp\release,..\..\" + GenerateDebugInformation="TRUE" + SubSystem="1" + OptimizeReferences="2" + EnableCOMDATFolding="2" + TargetMachine="1"/> + <Tool + Name="VCMIDLTool"/> + <Tool + Name="VCPostBuildEventTool"/> + <Tool + Name="VCPreBuildEventTool"/> + <Tool + Name="VCPreLinkEventTool"/> + <Tool + Name="VCResourceCompilerTool"/> + <Tool + Name="VCWebServiceProxyGeneratorTool"/> + <Tool + Name="VCXMLDataGeneratorTool"/> + <Tool + Name="VCWebDeploymentTool"/> + <Tool + Name="VCManagedWrapperGeneratorTool"/> + <Tool + Name="VCAuxiliaryManagedWrapperGeneratorTool"/> + </Configuration> + </Configurations> + <References> + </References> + <Files> + <Filter + Name="Source Files" + Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx" + UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"> + <File + RelativePath=".\helloserver.c"> + <FileConfiguration + Name="Release|Win32"> + <Tool + Name="VCCLCompilerTool" + CompileAs="2"/> + </FileConfiguration> + </File> + <File + RelativePath=".\stdafx.cpp"> + </File> + </Filter> + <Filter + Name="Header Files" + Filter="h;hpp;hxx;hm;inl;inc;xsd" + UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"> + <File + RelativePath=".\stdafx.h"> + </File> + </Filter> + <Filter + Name="Resource Files" + Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx" + UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"> + </Filter> + </Files> + <Globals> + </Globals> +</VisualStudioProject> 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 <nanohttp/nanohttp-client.h> +#ifdef WIN32 +#include <stdafx.h> +#include <malloc.h> +#else #include <stdio.h> +#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 <url> \n", argv[0]); - exit(1); - } + if (argc < 2) { + fprintf(stderr, "usage %s <url> \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 @@ +<?xml version="1.0" encoding="Windows-1252"?> +<VisualStudioProject + ProjectType="Visual C++" + Version="7.10" + Name="httpcpost" + ProjectGUID="{3D4C3C19-2166-4017-9103-D30AB5DD2AB2}" + Keyword="Win32Proj"> + <Platforms> + <Platform + Name="Win32"/> + </Platforms> + <Configurations> + <Configuration + Name="Debug|Win32" + OutputDirectory="Debug" + IntermediateDirectory="Debug" + ConfigurationType="1" + CharacterSet="2"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="..\..\,.\" + PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE" + MinimalRebuild="TRUE" + BasicRuntimeChecks="3" + RuntimeLibrary="5" + UsePrecompiledHeader="0" + WarningLevel="3" + Detect64BitPortabilityProblems="TRUE" + DebugInformationFormat="4" + CompileAs="2"/> + <Tool + Name="VCCustomBuildTool"/> + <Tool + Name="VCLinkerTool" + AdditionalDependencies="nanohttp.lib" + OutputFile="$(OutDir)/httpcpost.exe" + LinkIncremental="2" + AdditionalLibraryDirectories="..\..\nanohttp\debug,..\..\" + GenerateDebugInformation="TRUE" + ProgramDatabaseFile="$(OutDir)/httpcpost.pdb" + SubSystem="1" + TargetMachine="1"/> + <Tool + Name="VCMIDLTool"/> + <Tool + Name="VCPostBuildEventTool"/> + <Tool + Name="VCPreBuildEventTool"/> + <Tool + Name="VCPreLinkEventTool"/> + <Tool + Name="VCResourceCompilerTool"/> + <Tool + Name="VCWebServiceProxyGeneratorTool"/> + <Tool + Name="VCXMLDataGeneratorTool"/> + <Tool + Name="VCWebDeploymentTool"/> + <Tool + Name="VCManagedWrapperGeneratorTool"/> + <Tool + Name="VCAuxiliaryManagedWrapperGeneratorTool"/> + </Configuration> + <Configuration + Name="Release|Win32" + OutputDirectory="Release" + IntermediateDirectory="Release" + ConfigurationType="1" + CharacterSet="2"> + <Tool + Name="VCCLCompilerTool" + AdditionalIncludeDirectories="..\..\,.\" + PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE" + RuntimeLibrary="4" + UsePrecompiledHeader="0" + WarningLevel="3" + Detect64BitPortabilityProblems="TRUE" + DebugInformationFormat="3"/> + <Tool + Name="VCCustomBuildTool"/> + <Tool + Name="VCLinkerTool" + AdditionalDependencies="nanohttp.lib" + OutputFile="$(OutDir)/httpcpost.exe" + LinkIncremental="1" + AdditionalLibraryDirectories="..\..\nanohttp\release,..\..\" + GenerateDebugInformation="TRUE" + SubSystem="1" + OptimizeReferences="2" + EnableCOMDATFolding="2" + TargetMachine="1"/> + <Tool + Name="VCMIDLTool"/> + <Tool + Name="VCPostBuildEventTool"/> + <Tool + Name="VCPreBuildEventTool"/> + <Tool + Name="VCPreLinkEventTool"/> + <Tool + Name="VCResourceCompilerTool"/> + <Tool + Name="VCWebServiceProxyGeneratorTool"/> + <Tool + Name="VCXMLDataGeneratorTool"/> + <Tool + Name="VCWebDeploymentTool"/> + <Tool + Name="VCManagedWrapperGeneratorTool"/> + <Tool + Name="VCAuxiliaryManagedWrapperGeneratorTool"/> + </Configuration> + </Configurations> + <References> + </References> + <Files> + <Filter + Name="Source Files" + Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx" + UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"> + <File + RelativePath=".\httpcpost.c"> + <FileConfiguration + Name="Release|Win32"> + <Tool + Name="VCCLCompilerTool" + CompileAs="2"/> + </FileConfiguration> + </File> + <File + RelativePath=".\stdafx.cpp"> + </File> + </Filter> + <Filter + Name="Header Files" + Filter="h;hpp;hxx;hm;inl;inc;xsd" + UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"> + <File + RelativePath=".\stdafx.h"> + </File> + </Filter> + <Filter + Name="Resource Files" + Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx" + UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"> + </Filter> + </Files> + <Globals> + </Globals> +</VisualStudioProject> 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 <nanohttp/nanohttp-client.h> +#ifdef WIN32 +#include <stdafx.h> +#include <malloc.h> +#else #include <stdio.h> +#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 <url>\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 <url>\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 @@ +<?xml version="1.0" encoding="Windows-1252"?> +<VisualStudioProject + ProjectType="Visual C++" + Version="7.10" + Name="httpget" + ProjectGUID="{3D4C3C19-2166-4017-9103-D30AB5DD2AB2}" + Keyword="Win32Proj"> + <Platforms> + <Platform + Name="Win32"/> + </Platforms> + <Configurations> + <Configuration + Name="Debug|Win32" + OutputDirectory="Debug" + IntermediateDirectory="Debug" + ConfigurationType="1" + CharacterSet="2"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="..\..\,.\" + PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE" + MinimalRebuild="TRUE" + BasicRuntimeChecks="3" + RuntimeLibrary="5" + UsePrecompiledHeader="0" + WarningLevel="3" + Detect64BitPortabilityProblems="TRUE" + DebugInformationFormat="4" + CompileAs="2"/> + <Tool + Name="VCCustomBuildTool"/> + <Tool + Name="VCLinkerTool" + AdditionalDependencies="nanohttp.lib" + OutputFile="$(OutDir)/httpget.exe" + LinkIncremental="2" + AdditionalLibraryDirectories="..\..\nanohttp\debug,..\..\" + GenerateDebugInformation="TRUE" + ProgramDatabaseFile="$(OutDir)/httpget.pdb" + SubSystem="1" + TargetMachine="1"/> + <Tool + Name="VCMIDLTool"/> + <Tool + Name="VCPostBuildEventTool"/> + <Tool + Name="VCPreBuildEventTool"/> + <Tool + Name="VCPreLinkEventTool"/> + <Tool + Name="VCResourceCompilerTool"/> + <Tool + Name="VCWebServiceProxyGeneratorTool"/> + <Tool + Name="VCXMLDataGeneratorTool"/> + <Tool + Name="VCWebDeploymentTool"/> + <Tool + Name="VCManagedWrapperGeneratorTool"/> + <Tool + Name="VCAuxiliaryManagedWrapperGeneratorTool"/> + </Configuration> + <Configuration + Name="Release|Win32" + OutputDirectory="Release" + IntermediateDirectory="Release" + ConfigurationType="1" + CharacterSet="2"> + <Tool + Name="VCCLCompilerTool" + AdditionalIncludeDirectories="..\..\,.\" + PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE" + RuntimeLibrary="4" + UsePrecompiledHeader="0" + WarningLevel="3" + Detect64BitPortabilityProblems="TRUE" + DebugInformationFormat="3"/> + <Tool + Name="VCCustomBuildTool"/> + <Tool + Name="VCLinkerTool" + AdditionalDependencies="nanohttp.lib" + OutputFile="$(OutDir)/httpget.exe" + LinkIncremental="1" + AdditionalLibraryDirectories="..\..\nanohttp\release,..\..\" + GenerateDebugInformation="TRUE" + SubSystem="1" + OptimizeReferences="2" + EnableCOMDATFolding="2" + TargetMachine="1"/> + <Tool + Name="VCMIDLTool"/> + <Tool + Name="VCPostBuildEventTool"/> + <Tool + Name="VCPreBuildEventTool"/> + <Tool + Name="VCPreLinkEventTool"/> + <Tool + Name="VCResourceCompilerTool"/> + <Tool + Name="VCWebServiceProxyGeneratorTool"/> + <Tool + Name="VCXMLDataGeneratorTool"/> + <Tool + Name="VCWebDeploymentTool"/> + <Tool + Name="VCManagedWrapperGeneratorTool"/> + <Tool + Name="VCAuxiliaryManagedWrapperGeneratorTool"/> + </Configuration> + </Configurations> + <References> + </References> + <Files> + <Filter + Name="Source Files" + Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx" + UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"> + <File + RelativePath=".\httpget.c"> + <FileConfiguration + Name="Release|Win32"> + <Tool + Name="VCCLCompilerTool" + CompileAs="2"/> + </FileConfiguration> + </File> + <File + RelativePath=".\stdafx.cpp"> + </File> + </Filter> + <Filter + Name="Header Files" + Filter="h;hpp;hxx;hm;inl;inc;xsd" + UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"> + <File + RelativePath=".\stdafx.h"> + </File> + </Filter> + <Filter + Name="Resource Files" + Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx" + UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"> + </Filter> + </Files> + <Globals> + </Globals> +</VisualStudioProject> 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 <nanohttp/nanohttp-client.h> +#ifdef WIN32 +#include <stdafx.h> +#include <malloc.h> +#else #include <stdio.h> +#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 <url> <filename>\n", argv[0]); - exit(1); - } + if (argc < 3) { + fprintf(stderr, "usage %s <url> <filename>\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 @@ +<?xml version="1.0" encoding="Windows-1252"?> +<VisualStudioProject + ProjectType="Visual C++" + Version="7.10" + Name="httpgetcb" + ProjectGUID="{3D4C3C19-2166-4017-9103-D30AB5DD2AB2}" + Keyword="Win32Proj"> + <Platforms> + <Platform + Name="Win32"/> + </Platforms> + <Configurations> + <Configuration + Name="Debug|Win32" + OutputDirectory="Debug" + IntermediateDirectory="Debug" + ConfigurationType="1" + CharacterSet="2"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="..\..\,.\" + PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE" + MinimalRebuild="TRUE" + BasicRuntimeChecks="3" + RuntimeLibrary="5" + UsePrecompiledHeader="0" + WarningLevel="3" + Detect64BitPortabilityProblems="TRUE" + DebugInformationFormat="4" + CompileAs="2"/> + <Tool + Name="VCCustomBuildTool"/> + <Tool + Name="VCLinkerTool" + AdditionalDependencies="nanohttp.lib" + OutputFile="$(OutDir)/httpgetcb.exe" + LinkIncremental="2" + AdditionalLibraryDirectories="..\..\nanohttp\debug,..\..\" + GenerateDebugInformation="TRUE" + ProgramDatabaseFile="$(OutDir)/httpgetcb.pdb" + SubSystem="1" + TargetMachine="1"/> + <Tool + Name="VCMIDLTool"/> + <Tool + Name="VCPostBuildEventTool"/> + <Tool + Name="VCPreBuildEventTool"/> + <Tool + Name="VCPreLinkEventTool"/> + <Tool + Name="VCResourceCompilerTool"/> + <Tool + Name="VCWebServiceProxyGeneratorTool"/> + <Tool + Name="VCXMLDataGeneratorTool"/> + <Tool + Name="VCWebDeploymentTool"/> + <Tool + Name="VCManagedWrapperGeneratorTool"/> + <Tool + Name="VCAuxiliaryManagedWrapperGeneratorTool"/> + </Configuration> + <Configuration + Name="Release|Win32" + OutputDirectory="Release" + IntermediateDirectory="Release" + ConfigurationType="1" + CharacterSet="2"> + <Tool + Name="VCCLCompilerTool" + AdditionalIncludeDirectories="..\..\,.\" + PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE" + RuntimeLibrary="4" + UsePrecompiledHeader="0" + WarningLevel="3" + Detect64BitPortabilityProblems="TRUE" + DebugInformationFormat="3"/> + <Tool + Name="VCCustomBuildTool"/> + <Tool + Name="VCLinkerTool" + AdditionalDependencies="nanohttp.lib" + OutputFile="$(OutDir)/httpgetcb.exe" + LinkIncremental="1" + AdditionalLibraryDirectories="..\..\nanohttp\release,..\..\" + GenerateDebugInformation="TRUE" + SubSystem="1" + OptimizeReferences="2" + EnableCOMDATFolding="2" + TargetMachine="1"/> + <Tool + Name="VCMIDLTool"/> + <Tool + Name="VCPostBuildEventTool"/> + <Tool + Name="VCPreBuildEventTool"/> + <Tool + Name="VCPreLinkEventTool"/> + <Tool + Name="VCResourceCompilerTool"/> + <Tool + Name="VCWebServiceProxyGeneratorTool"/> + <Tool + Name="VCXMLDataGeneratorTool"/> + <Tool + Name="VCWebDeploymentTool"/> + <Tool + Name="VCManagedWrapperGeneratorTool"/> + <Tool + Name="VCAuxiliaryManagedWrapperGeneratorTool"/> + </Configuration> + </Configurations> + <References> + </References> + <Files> + <Filter + Name="Source Files" + Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx" + UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"> + <File + RelativePath=".\httpgetcb.c"> + <FileConfiguration + Name="Release|Win32"> + <Tool + Name="VCCLCompilerTool" + CompileAs="2"/> + </FileConfiguration> + </File> + <File + RelativePath=".\stdafx.cpp"> + </File> + </Filter> + <Filter + Name="Header Files" + Filter="h;hpp;hxx;hm;inl;inc;xsd" + UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"> + <File + RelativePath=".\stdafx.h"> + </File> + </Filter> + <Filter + Name="Resource Files" + Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx" + UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"> + </Filter> + </Files> + <Globals> + </Globals> +</VisualStudioProject> 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 <nanohttp/nanohttp-client.h> +#ifdef WIN32 +#include <stdafx.h> +#include <malloc.h> +#else #include <stdio.h> +#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 <url> \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 <url> \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 @@ +<?xml version="1.0" encoding="Windows-1252"?> +<VisualStudioProject + ProjectType="Visual C++" + Version="7.10" + Name="httppost" + ProjectGUID="{3D4C3C19-2166-4017-9103-D30AB5DD2AB2}" + Keyword="Win32Proj"> + <Platforms> + <Platform + Name="Win32"/> + </Platforms> + <Configurations> + <Configuration + Name="Debug|Win32" + OutputDirectory="Debug" + IntermediateDirectory="Debug" + ConfigurationType="1" + CharacterSet="2"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="..\..\,.\" + PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE" + MinimalRebuild="TRUE" + BasicRuntimeChecks="3" + RuntimeLibrary="5" + UsePrecompiledHeader="0" + WarningLevel="3" + Detect64BitPortabilityProblems="TRUE" + DebugInformationFormat="4" + CompileAs="2"/> + <Tool + Name="VCCustomBuildTool"/> + <Tool + Name="VCLinkerTool" + AdditionalDependencies="nanohttp.lib" + OutputFile="$(OutDir)/httppost.exe" + LinkIncremental="2" + AdditionalLibraryDirectories="..\..\nanohttp\debug,..\..\" + GenerateDebugInformation="TRUE" + ProgramDatabaseFile="$(OutDir)/httppost.pdb" + SubSystem="1" + TargetMachine="1"/> + <Tool + Name="VCMIDLTool"/> + <Tool + Name="VCPostBuildEventTool"/> + <Tool + Name="VCPreBuildEventTool"/> + <Tool + Name="VCPreLinkEventTool"/> + <Tool + Name="VCResourceCompilerTool"/> + <Tool + Name="VCWebServiceProxyGeneratorTool"/> + <Tool + Name="VCXMLDataGeneratorTool"/> + <Tool + Name="VCWebDeploymentTool"/> + <Tool + Name="VCManagedWrapperGeneratorTool"/> + <Tool + Name="VCAuxiliaryManagedWrapperGeneratorTool"/> + </Configuration> + <Configuration + Name="Release|Win32" + OutputDirectory="Release" + IntermediateDirectory="Release" + ConfigurationType="1" + CharacterSet="2"> + <Tool + Name="VCCLCompilerTool" + AdditionalIncludeDirectories="..\..\,.\" + PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE" + RuntimeLibrary="4" + UsePrecompiledHeader="0" + WarningLevel="3" + Detect64BitPortabilityProblems="TRUE" + DebugInformationFormat="3"/> + <Tool + Name="VCCustomBuildTool"/> + <Tool + Name="VCLinkerTool" + AdditionalDependencies="nanohttp.lib" + OutputFile="$(OutDir)/httppost.exe" + LinkIncremental="1" + AdditionalLibraryDirectories="..\..\nanohttp\release,..\..\" + GenerateDebugInformation="TRUE" + SubSystem="1" + OptimizeReferences="2" + EnableCOMDATFolding="2" + TargetMachine="1"/> + <Tool + Name="VCMIDLTool"/> + <Tool + Name="VCPostBuildEventTool"/> + <Tool + Name="VCPreBuildEventTool"/> + <Tool + Name="VCPreLinkEventTool"/> + <Tool + Name="VCResourceCompilerTool"/> + <Tool + Name="VCWebServiceProxyGeneratorTool"/> + <Tool + Name="VCXMLDataGeneratorTool"/> + <Tool + Name="VCWebDeploymentTool"/> + <Tool + Name="VCManagedWrapperGeneratorTool"/> + <Tool + Name="VCAuxiliaryManagedWrapperGeneratorTool"/> + </Configuration> + </Configurations> + <References> + </References> + <Files> + <Filter + Name="Source Files" + Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx" + UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"> + <File + RelativePath=".\httppost.c"> + <FileConfiguration + Name="Release|Win32"> + <Tool + Name="VCCLCompilerTool" + CompileAs="2"/> + </FileConfiguration> + </File> + <File + RelativePath=".\stdafx.cpp"> + </File> + </Filter> + <Filter + Name="Header Files" + Filter="h;hpp;hxx;hm;inl;inc;xsd" + UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"> + <File + RelativePath=".\stdafx.h"> + </File> + </Filter> + <Filter + Name="Resource Files" + Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx" + UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"> + </Filter> + </Files> + <Globals> + </Globals> +</VisualStudioProject> 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 <nanohttp/nanohttp-server.h> +#ifdef WIN32 +#include <stdafx.h> +#include <malloc.h> +#else #include <stdio.h> - - +#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, "<html><body>"); - hsocket_send(conn->sock, "<h3>You Posted:</h3><hr>"); - hsocket_nsend(conn->sock, postdata, received); - hsocket_send(conn->sock, "</body></html>"); - free(postdata); + httpd_send_header(conn, 200, "OK", NULL); + hsocket_send(conn->sock, "<html><body>"); + hsocket_send(conn->sock, "<h3>You Posted:</h3><hr>"); + hsocket_nsend(conn->sock, postdata, received); + hsocket_send(conn->sock, "</body></html>"); + free(postdata); - } else { + } else { - httpd_send_header(conn, 200, "OK", NULL); - hsocket_send(conn->sock, "<html><body>"); - hsocket_send(conn->sock, "<form action=\"/postserver\" method=\"POST\">"); - hsocket_send(conn->sock, "Enter Postdata: <input name=\"field\" type=\"text\">"); - hsocket_send(conn->sock, "<input type=\"submit\">"); - hsocket_send(conn->sock, "</body></html>"); + httpd_send_header(conn, 200, "OK", NULL); + hsocket_send(conn->sock, "<html><body>"); + hsocket_send(conn->sock, "<form action=\"/postserver\" method=\"POST\">"); + hsocket_send(conn->sock, "Enter Postdata: <input name=\"field\" type=\"text\">"); + hsocket_send(conn->sock, "<input type=\"submit\">"); + hsocket_send(conn->sock, "</body></html>"); - } + } } - +#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 @@ +<?xml version="1.0" encoding="Windows-1252"?> +<VisualStudioProject + ProjectType="Visual C++" + Version="7.10" + Name="postserver" + ProjectGUID="{3D4C3C19-2166-4017-9103-D30AB5DD2AB2}" + Keyword="Win32Proj"> + <Platforms> + <Platform + Name="Win32"/> + </Platforms> + <Configurations> + <Configuration + Name="Debug|Win32" + OutputDirectory="Debug" + IntermediateDirectory="Debug" + ConfigurationType="1" + CharacterSet="2"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="..\..\,.\" + PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE" + MinimalRebuild="TRUE" + BasicRuntimeChecks="3" + RuntimeLibrary="5" + UsePrecompiledHeader="0" + WarningLevel="3" + Detect64BitPortabilityProblems="TRUE" + DebugInformationFormat="4" + CompileAs="2"/> + <Tool + Name="VCCustomBuildTool"/> + <Tool + Name="VCLinkerTool" + AdditionalDependencies="nanohttp.lib pthreadvc.lib" + OutputFile="$(OutDir)/postserver.exe" + LinkIncremental="2" + AdditionalLibraryDirectories="..\..\nanohttp\debug,..\..\" + GenerateDebugInformation="TRUE" + ProgramDatabaseFile="$(OutDir)/postserver.pdb" + SubSystem="1" + TargetMachine="1"/> + <Tool + Name="VCMIDLTool"/> + <Tool + Name="VCPostBuildEventTool"/> + <Tool + Name="VCPreBuildEventTool"/> + <Tool + Name="VCPreLinkEventTool"/> + <Tool + Name="VCResourceCompilerTool"/> + <Tool + Name="VCWebServiceProxyGeneratorTool"/> + <Tool + Name="VCXMLDataGeneratorTool"/> + <Tool + Name="VCWebDeploymentTool"/> + <Tool + Name="VCManagedWrapperGeneratorTool"/> + <Tool + Name="VCAuxiliaryManagedWrapperGeneratorTool"/> + </Configuration> + <Configuration + Name="Release|Win32" + OutputDirectory="Release" + IntermediateDirectory="Release" + ConfigurationType="1" + CharacterSet="2"> + <Tool + Name="VCCLCompilerTool" + AdditionalIncludeDirectories="..\..\,.\" + PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE" + RuntimeLibrary="4" + UsePrecompiledHeader="0" + WarningLevel="3" + Detect64BitPortabilityProblems="TRUE" + DebugInformationFormat="3"/> + <Tool + Name="VCCustomBuildTool"/> + <Tool + Name="VCLinkerTool" + AdditionalDependencies="nanohttp.lib pthreadvc.lib" + OutputFile="$(OutDir)/postserver.exe" + LinkIncremental="1" + AdditionalLibraryDirectories="..\..\nanohttp\release,..\..\" + GenerateDebugInformation="TRUE" + SubSystem="1" + OptimizeReferences="2" + EnableCOMDATFolding="2" + TargetMachine="1"/> + <Tool + Name="VCMIDLTool"/> + <Tool + Name="VCPostBuildEventTool"/> + <Tool + Name="VCPreBuildEventTool"/> + <Tool + Name="VCPreLinkEventTool"/> + <Tool + Name="VCResourceCompilerTool"/> + <Tool + Name="VCWebServiceProxyGeneratorTool"/> + <Tool + Name="VCXMLDataGeneratorTool"/> + <Tool + Name="VCWebDeploymentTool"/> + <Tool + Name="VCManagedWrapperGeneratorTool"/> + <Tool + Name="VCAuxiliaryManagedWrapperGeneratorTool"/> + </Configuration> + </Configurations> + <References> + </References> + <Files> + <Filter + Name="Source Files" + Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx" + UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"> + <File + RelativePath=".\postserver.c"> + <FileConfiguration + Name="Release|Win32"> + <Tool + Name="VCCLCompilerTool" + CompileAs="2"/> + </FileConfiguration> + </File> + <File + RelativePath=".\stdafx.cpp"> + </File> + </Filter> + <Filter + Name="Header Files" + Filter="h;hpp;hxx;hm;inl;inc;xsd" + UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"> + <File + RelativePath=".\stdafx.h"> + </File> + </Filter> + <Filter + Name="Resource Files" + Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx" + UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"> + </Filter> + </Files> + <Globals> + </Globals> +</VisualStudioProject> diff --git a/examples/nanohttp/pthreadVC.dll b/examples/nanohttp/pthreadVC.dll Binary files differnew file mode 100644 index 0000000..4fc1f00 --- /dev/null +++ b/examples/nanohttp/pthreadVC.dll 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 <iostream> +#include <tchar.h> + +// TODO: reference additional headers your program requires here |