PocketSOAP

Jump to Downloads | Online Documentation | Samples | FAQ

This is an Open Source [MPL] SOAP client COM component for the Windows family, originally targeted at PocketPC (hence the name), there is also a Win32 version that works on Windows 95/98/Me/NT4/2000/XP/2003. The package includes a HTTP 1.1 transport for making HTTP based SOAP requests, however the transport is separate from the main SOAP core, so any other transports can be easily added. James Clark's excellent Expat XML Parser is used for parsing the response SOAP messages.

PocketSOAP includes the following features
Latest : PocketSOAP v1.5.5, released August 16, 2009

PocketSOAP is desgined for interop, and is regularly test with over 30 of the leading SOAP tools, including

As easy as 1,2,3

Set pf = CreateObject("pocketsoap.Factory")
Set sp = pf.CreateProxy("http://services.xmethods.net/soap", "urn:xmethods-delayed-quotes")
msgbox sp.getQuote(symbol:="AMD")
This will call the getQuote SOAP service available at XMethods, and display the results.

Using the Core Components

The core object is the Envelope class, this provides access to all the interesting stuff, here's an example VBScript that makes a call to a 4s4c server
Function Test4s4c()
	dim soap, t
	set soap = CreateObject("PocketSOAP.Envelope.11")

	soap.methodName = "Add"
	soap.URI = "http://simon.fell.com/calc"

	soap.Parameters.Create "a", 100
	soap.Parameters.Create "b", 20

	set t = CreateObject("PocketSOAP.HTTPTransport")
	t.Send "http://soap.4s4c.com/ssss4c/soap.asp", soap.serialize
	soap.parse t

	' jump into the return parameters collection to get the results
	wscript.echo "4s4c at soap.4s4c.com result (expecting 120) : " & _
		soap.Parameters.ItemByName("added").Value
end Function
This creates and sends the following SOAP request (you can see this with pcapTrace)
<S:Envelope
	S:encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'
	xmlns:S='http://schemas.xmlsoap.org/soap/envelope/'
	xmlns:a='http://simon.fell.com/calc'
	xmlns:XS='http://www.w3.org/2001/XMLSchema'
	xmlns:XI='http://www.w3.org/2001/XMLSchema-instance'>
<S:Body><a:Add>
<a XI:type='XS:short'>100</a>
<b XI:type='XS:short'>20</b>
</a:Add>
</S:Body></S:Envelope>

Data Types

All the major data types are supported, including mutli-dimensional arrays, partial and sparse arrays, as well as complex types. The whole serialization architecture is pluggable, need to write your own custom serializers, no problem !, don't like one of the standard serializers, simply replace it. Support for both the 1999 & 2001 schema's is included, as is a scripting friendly mode, which generates all arrays as arrays of variants for easy use from VBScript and other scripting languages.

New Feature Tour

See the new feature tour for info on all the new features.

Migration

Code based on PocketSOAP 0.9.x will need to be modified to work against PocketSOAP 1.x. However the Win32 version can be installed along side the 0.9 version to make migration easier. See the migration guide for tips on converting v0.9 based code to v1.x.

TransportPak Beta

A beta version of the TransportPak is now available, this adds some additional transports to the existing HTTP transport.

Binaries & Source

Pre packaged Binaries and source are available under the Mozila Public License v1.1 (MPL)

Note: As of v1.4.0, the installers are now using NSIS, rather than MSI.
Version Size (Kb) Platform Notes
Win32 Version v1.5.5 Packaged Install 800 supports Windows 95 OSR2 / 98 / Me / NT4 / 2000 / XP / 2003 Windows 95 requires DCOM95 Installing first
Windows 95/98 requires additional installs for SSL support, see the docs for details.
PocketPC Version v1.5.5 Packaged Install 2050 supports ARM, SH3 & MIPS running PocketPC and ARM devices running PocketPC / 2002 / 2003 requires ActiveSync 3.0 or greater to install, tested on Compaq iPaq H3650 (ARM) with a CF wireless network card
v1.5.5 Source Code 2483 Single source tree for both PocketPC & Wintel versions Read the building the source notes first !
Source code is also available via the Github project page.
binaries for PocketPC 2000 emulator 386 Built binaries suitable for installation into the pocketPC 2000 emulator. you'll need to run regsvrce on pocketHTTP.dll, psoap.dll & psdime.dll
binaries for PocketPC 2002 emulator 379 Built binaries suitable for installation into the pocketPC 2002 emulator you'll need to run regsvrce on pocketHTTP.dll, psoap.dll & psdime.dll
binaries for Win32 325 supports Windows 95 OSR2 / 98 / Me / NT4 / 2000 / XP / 2003 The Win32 build of PocketSOAP without an installer, all the DLL's in the zip file need registering with regsvr32.exe

Documentation

Installing either the Win32 or PocketPC packaged installs above will install a full copy of the documentation on your desktop PC. You can also view the documentation online.

Release History

Version 1.5.5, August 16, 2009 Version 1.5.4, May 2, 2006 Version 1.5.3, Nov 3, 2005 Version 1.5.2, May 14, 2005 Version 1.5.1, May 4, 2005 Version 1.5, Octoboer 14, 2004 Version 1.4.3, May 11, 2003 Version 1.4.2, February 8, 2003 Version 1.4.1, January 10, 2003 Version 1.4.0, December 21, 2002 Version 1.3.7, August 19, 2002 Version 1.3.5, July 27, 2002 Version 1.3.0, April 28, 2002 Version 1.2.3, January 25, 2002 Version 1.2.2, January 19, 2002 Version 1.2.1, January 3, 2002 Version 1.2, December 9, 2001 Version 1.1.1, November 29, 2001 Version 1.1, November 13, 2001 Version 0.9.1.2 June 15, 2001 (pocketPC only) Version 0.9.1 March 28, 2001 Version 0.9 February 24, 2001 Version 0.8, December 4, 2000
Initial Release