示例客户端请求SOAP

时间:2011-10-21 16:05:56

标签: java android web-services web-applications

我在服务器上部署了一个HelloWorld Web服务。现在我试图与服务器交谈。如何在Java应用程序中执行SOAP请求?

这是XML信封(请求):

            POST /AndroidSampleApp/Test.asmx HTTP/1.1
            Host: (host)
            Content-Type: text/xml; charset=utf-8
            Content-Length: length
            SOAPAction: "http://tempuri.org/HelloWorld"

            <?xml version="1.0" encoding="utf-8"?>
            <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
              <soap:Body>
                <HelloWorld xmlns="http://tempuri.org/">
                  <username>string</username>
                  <password>string</password>
                </HelloWorld>
              </soap:Body>
            </soap:Envelope>

这是XML信封(请求):

            HTTP/1.1 200 OK
            Content-Type: text/xml; charset=utf-8
            Content-Length: length

            <?xml version="1.0" encoding="utf-8"?>
            <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
              <soap:Body>
                <HelloWorldResponse xmlns="http://tempuri.org/">
                  <HelloWorldResult>string</HelloWorldResult>
                </HelloWorldResponse>
              </soap:Body>
            </soap:Envelope>

如何从java程序调用此Web服务以及我需要导入哪些包。谢谢!

注意:这适用于Android应用程序

2 个答案:

答案 0 :(得分:0)

如果你想用Java调用它,那么一种方法是让soapUI为你生成一个客户端jar。

http://2mohitarora.blogspot.com/2010/11/how-to-generate-web-service-client-jar.html

如果您使用的是Apache cxf,您可以查看本文如何生成客户端:

http://logicsector.wordpress.com/2008/10/19/how-to-create-a-wsdl-first-soap-client-in-java-with-cxf-and-maven/

答案 1 :(得分:0)

您可以使用ksoap2库轻松进行soap webservie调用。

Ksoap相对易于使用,但我在使用它的某些网络上遇到了一些性能问题。

相反,我一直在使用HttpUrlConnection(或AndroidHttpClient,具体取决于操作系统版本)。有关详细信息,请参阅此post。我将它们与Android上提供的任何XML解析器和构建器结合使用。

希望这有帮助!