AWG Blogs

  • Getting ADB Working for SPH-M840 - Had a SPH-M840 Galaxy Ring Virgin Mobile 3G Android version 4.1.2, attempting to install apps from Android Studio failed to detect device. Installed SAMSUN...
    5 months ago
  • How to check if I have write permissions to an Oracle table - SELECT CASE WHEN COUNT(*) > 0 THEN 'YES' ELSE 'NO' END AS PERMISSIONS FROM ( SELECT privilege FROM ( select * from dba_tab_privs where (grantee = 'MY_USE...
    5 months ago
  • JSF vs Struts 2 - JSF was designed in part by the authors of Struts to create a "Struts" that did a more accurate implementation of MVC (Struts is technically "Model 2") a...
    6 months ago
  • XML Beans vs JAXB - Seems XML Beans is superior: JAXB provides support for the XML schema specification, but handles only a subset of it; XMLBeans supports all of it. Also, by...
    10 months ago
  • Algorithms and OOP - In addition to DCI, "generic programming" as well as the move to functional programming appears to add nuance to the OOP notion of joining behavior with da...
    1 year ago
  • Flyweight vs Singleton - Implementations seems to be virtually identical, differing only in style, where the flyweight object is created and held by associated objects (containers:...
    1 year ago
  • init-param vs context-param - see http://javahash.com/difference-between-servlet-init-and-context-parameter/ for background. Gist: context-param variables are global and accessible thro...
    1 year ago
  • rbenv vs RVM - RVM is responsible not only for changing Ruby versions, but for installing rubies and managing gemsets, as well. ...Along with rbenv [to manage ruby versi...
    1 year ago

Sunday, September 19, 2010

gSOAP Client Setup Steps

My environment is Vista x64, Visual Studio 2008

Download gSoap from here: http://www.cs.fsu.edu/~engelen/soap.html. I downloaded gsoap_2.8.0.
open command prompt and change to gsoap_2.8.0\gsoap-2.8\gsoap\bin\win32
enter: wsdl2h -c -o iptocountry.h http://www.ecubicle.net/iptocountry.asmx?wsdl

enter: soapcpp2 -c -C iptocountry.h

Create a new Visual Studio 2008 Visual C++ Win32 Console Application with Empty project selected (no Precompiled header)

Copy the following files generated above by gsoap to your VS project directory (with the .vcproj).

files to copy: iptocountrySoap12.nsmap, soapC.c, soapClient.c, soapH.h, soapStub.h

Copy stdsoap2.c and stdsoap2.h to your VS project directory from gsoap_2.8.0\gsoap-2.8\gsoap\

Include the files in your project

Add a file called myclient.c to your project with the following contents:
#include "soapH.h" // obtain the generated stub
#include "iptocountrySoap12.nsmap"
main()
{
struct soap *soap = soap_new();
struct _ns1__FindCountryAsString *_myipv4address;
struct _ns1__FindCountryAsStringResponse *myresponse;
char text[20];

_myipv4address = (struct _ns1__FindCountryAsString *)malloc(sizeof(struct _ns1__FindCountryAsString));
myresponse = (struct _ns1__FindCountryAsStringResponse *)malloc(sizeof(struct _ns1__FindCountryAsStringResponse));

fputs("enter an IP: ", stdout);
fflush(stdout);
if ( fgets(text, sizeof text, stdin) != NULL )
{
char *newline = strchr(text, '\n'); /* search for newline character */
if ( newline != NULL )
{
*newline = '\0'; /* overwrite trailing newline */
}
printf("text = \"%s\"\n", text);
}

_myipv4address->V4IPAddress = text;


if (soap_call___ns2__FindCountryAsString(soap, NULL, NULL, _myipv4address, myresponse) == SOAP_OK)
printf("Country code is = %s\n", myresponse->FindCountryAsStringResult);
else // an error occurred
soap_print_fault(soap, stderr); // display the SOAP fault on the stderr stream
}


Compile.

If you have installed a Microsoft Windows 7 SDK and are getting "fatal error LNK1104: cannot open file 'kernel32.lib'" try adding the path to the SDK lib (e.g. C:\Program Files\Microsoft SDKs\Windows\v7.1\Lib) to your project Configuration Properties \ Linker \ General \ Additional Library Directories.

No comments:

Post a Comment