Mac SOAP Client

SOAP Client is a free Cocoa-based developer tool for Mac OS X Tiger that allows you access and debug WSDL & SOAP-based Web Services from the comfort of your desktop.

SOAP Client screenshot

SOAP Client is now an open source project (BSD license) on Google Code!

2006/11/29: SOAP Client 1.6.3 Released.

New in SOAP Client v1.6.3:

  • 'View WSDL Source' option (think 'view source' in your browser, but for WSDL ;) ). This is accessible under the View menu or with the (Safari-esque) command-option-U keyboard command.
  • command-, now opens a small Preferences window with a setting for wrapped vs non-wrapped text in all raw source text views (SOAP Request, SOAP Response, and WSDL Source).

2006/11/17: SOAP Client 1.6.2 Released.

New in SOAP Client v1.6.2, Improved WSDL/XSD parsing:

  • Support for XML Schema types defined in a separate file that is referenced by your WSDL using <xsd:import schemaLocation="">. Netbeans seems to produce WSDL that does this.
  • Support for SOAP params that are XSD complexTypes defined outside of their xsd:elements and referenced using the xsd:element's type attribute.

Bottom line: SOAP Client is even more likely to create a correct GUI for your SOAP/WSDL service.

2006/11/16: SOAP Client 1.6.1 Released.

New in SOAP Client v1.6.1:

  • Support for overloaded SOAP request methods. That is, multiple methods with the same name but different parameters.

2006/11/15: SOAP Client 1.6 Released.

New in SOAP Client v1.6:

  • Full support for SOAP request parameters of the following types xsd:short, xsd:long, xsd:float, xsd:byte, xsd:dateTime, xsd:date, xsd:decimal and soapenc:decimal.

Important Note: You will not be able to open .soapclient documents created with a previous version using v1.6. You will have to create new documents. Sorry for the inconvenience.

Also note that xsd:complexTypes with nested xsd:complexTypes are still not supported. Workinonit.

2006/11/10: SOAP Client 1.5 Released.

New SOAP Client v1.5:

  • Support for SOAP request parameters that are XML Schema complexTypes -- now SOAP Client can serialize xsd:complexTypes referenced in your WSDL file.
  • Fix for crasher when executing against a SOAP endpoint that cannot be reached (no network access, incorrect address, etc).
  • SOAP Client no longer generates empty SOAP-ENC:Header elements in your request if you don't specify SOAP header content.

Note that there's an important caveat to the complexType encoding support. v1.5 does not currently support nested complexTypes -- that is, a complexType with another complexType as one of it's properties/fields. This is due to the rather short-sighted way in which I implemented this feature -- it should be recursive in a sense so that a complexType graph can be constructed. Unfortunately, that's not how I did it for v1.5. Watch for support for complexType graphs in a future version coming soon.

2006/11/07: SOAP Client 1.4.1 Released.

New SOAP Client v1.4.1:

  • Improved support for text encoding of remote WSDL documents.
  • Detailed error messages when WSDL parsing fails.
  • Support for binding style overrides specified directly on individual <soap:operation> elements (rather than just the default, binding-wide <soap:binding> elements).

2006/11/06: SOAP Client 1.4 Released.

New in SOAP Client v1.4:

  • Support for accessing remote WSDL files and SOAP service endpoints that require Basic or Digest HTTP authentication. This includes integration with your Mac OS X Keychain.

2006/11/03: SOAP Client 1.3 Released.

New in SOAP Client v1.3:

  • Support for adding custom XML SOAP Envelope Header content.

Also, this version improves .soapclient document saving support.

Now SOAP Client windows have a 'SOAP Envelope Header' tab that contain a large text area in which you can paste or type XML content that will automatically be injected into the <SOAP-ENV:Header> element of your SOAP request. This allows for custom SOAP request headers... a common need.

2006/11/03: SOAP Client 1.2 Released.

New in SOAP Client v1.2:

  • Support for two "binding styles" specified in WSDL files: "RPC" and "Document". Apache Axis refers to these as "service styles".

Previous versions of SOAP Client actually defaulted to "RPC" binding styles for all requests regardless of what style was specified in any given WSDL file. These styles are specified in a WSDL file as the style attribute of <wsdlsoap:binding> element that is the child of <wsdl:binding> element.

This all may sound rather arcane (and it is)... but binding styles can actually have a profound effect on whether your SOAP request is successful or not. For example, requests against this free, public movie showtime webservice available on always failed in previous versions of SOAP Client. That's because the showtime operations described in that WSDL file required "Document" binding styles... and previously, SOAP Client always used RPC binding styles. Thus, the request always failed.

So the binding style specified in your WSDL file (most WSDL seems to specify this explicitly) will now be displayed in the HTML UI that is auto-generated by SOAP Client. That means you can edit this value and change it if you like. Generally, I would not ;).

SOAP Client v1.2 also fixes an annoying bug where an extraneous ":" was added to the HTTP headers of all SOAP requests, causing errors against many servers.

One final note: Unfortunately, .soapclient documents from previous versions of SOAP Cient may not work properly with regard to this new binding style text field (causing an "undefined" value to appear). I recommend creating new .soapclient documents using the new version (v1.2) of SOAP Client and discarding your old documents.

2006/10/30: SOAP Client 1.1.3 Released.

Version 1.1.3 fixes a nasty crasher when a null response is returned from a SOAP request.

2006/10/28: SOAP Client 1.1.2 Released.

Version 1.1.2 fixes some more buggy behavior.

2006/10/26: SOAP Client 1.1.1 Released.

Version 1.1.1 fixes some buggy behavior in the HTTP Request Headers table. Specifically, in v1.1, if you deleted the last custom header, the table would become unusable with no "+" or "-" buttons. 1.1.1 fixes this. Also fixed is the bug in 1.1 where empty string headers were erroneously placed into the request.

2006/10/25: SOAP Client 1.1 Released.

Version 1.1 adds the ability to manually set/edit the HTTP request headers for your SOAP RPCs as well as view the raw HTTP headers in both the serialized SOAP request and response. The UI for adding/editing headers uses convenient, editable combo boxes pre-poplated with many common HTTP header names and values.

2006/10/24: SOAP Client 1.0 Released.

Version 1.0 is a major step forward in functionality for SOAP Client. SOAP Client now uses WSDL files you provide to dynamically create a graphical user interface for any given SOAP-based web service. Here's how:

  1. Find a SOAP-based web service that also has an accompanying WSDL description file.
  2. Launch SOAP Client 1.0 and paste the URL of a remote WSDL file into the 'WSDL' text field, or download the WSDL file to your local system and find it using the 'Browse' Button.
  3. Click the 'Parse' button.
  4. Watch in wonder as SOAP Client dynamically builds a graphical user interface for the SOAP-based web service described by the given WSDL file.
  5. Use this newly-created UI to select your desired method and input your parameter values. SOAP Client will automatically take care of adding the Endpoint URI, method namespace, and SOAPAction headers.
  6. Click the 'Execute' button.
  7. Now view both the SOAP request and response in the tabbed view below.

Universal Binary

Implementation Details

SOAP Client is written in Objective-C, XSLT, and C, and is based on:

Powered by libxslt

Powered by libxml2

Missing Features

  • SOAP Client supports SOAP Section 5 encoding only.
  • SOAP Client supports SOAP 1.2 only. I'm not sure of all of the differences between 1.1 and 1.2, but as far as I can tell, SOAP Client uses 1.2 encoding, and I have not enabled the ability to use 1.1. I can do that if there is demand.
  • SOAP Client only supports a subset of the datatypes included in the following two namespaces: and (commonly prefixed as xsd and SOAP-ENC).

SOAP Client requires Mac OS X 10.4 Tiger or later.

SOAP Client is developed by Todd Ditchendorf. Have feedback? This email address is being protected from spambots. You need JavaScript enabled to view it. .