How do I call a .NET Web service from a non-Windows client?
The underlying goal of Web services is interoperability across programming and operating platforms. Most programming platforms provide support for Web services both on the server side (service implementation) and on the client side (consumption of services). To consume a Web service, you need the WSDL contract for that service. Once you have this contract, which defines the XML messaging requirements for the service, you can use it to generate a proxy in whatever platform you are using. For example, if you are using open source Java, you might use Apache Axis proxy generators for this. BEA WebLogic/Workshop and IBM Websphere/Studio both have their own proxy generators for consuming Web services.
Once you have the proxy, you can invoke the service as though you were creating an instance of a class and calling one of its methods. The plumbing of the proxy handles serialization and invocation of the service of HTTP/Port 80 (or, whatever protocol the proxy supports if another is used).
Here's your checklist:
1. Find the WSDL contract. You get this either from the vendor, or by typing the service URL into a browser which should return either the WSDL contract directly, or a link to it).
2. Select your Web Service API (Apache Axis?) and generate a client-side proxy from the WSDL input.
3. Call the proxy from your client-code. This implies that you are probably selecting a Web Service API that is supported by your programming platform. If the platforms are WS-I (www.ws-i.org) compliant, you have a good chance that they will be interoperable, in most cases they are. If you encounter serialization compatibility issues, there is always a way to solve the problem with a little elbow grease.
Dig Deeper on Topics Archive
Have a question for an expert?
Please add a title for your question
Get answers from a TechTarget expert on whatever's puzzling you.