Пример клиентского запроса SOAP - PullRequest
0 голосов
/ 21 октября 2011

У меня развернут веб-сервис HelloWorld на сервере.Сейчас я пытаюсь поговорить с сервером.Как сделать запрос SOAP из приложения Java?

Вот конверт 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-программы и какие пакеты мне нужно импортировать.Спасибо!

Примечание. Это приложение для Android

.

Ответы [ 2 ]

0 голосов
/ 21 октября 2011

Вы можете использовать библиотеку ksoap2 , чтобы легко совершать звонки через мыльную сеть.

Ksoap относительно прост в использовании, но я столкнулся с некоторыми проблемами с производительностью при подключении в некоторых сетях, использующих его.

Вместо этого я использовал HttpUrlConnection (или AndroidHttpClient , в зависимости от версии ОС). См. сообщение для получения дополнительной информации. Я использую их в сочетании с любыми синтаксическими анализаторами и компоновщиками XML, доступными в Android.

Надеюсь, это поможет!

0 голосов
/ 21 октября 2011

Если вы хотите вызвать его в 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/

...