#java #android #web-services #web-applications
#java #Android #веб-сервисы #веб-приложения
Вопрос:
У меня есть веб-служба 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
Ответ №1:
Вы можете использовать библиотеку ksoap2, чтобы легко выполнять вызовы веб-сервиса soap.
Вместо этого я использую HttpURLConnection (или AndroidHttpClient, в зависимости от версии ОС). Смотрите Этот пост для получения дополнительной информации. Я использую их в сочетании с любым из анализаторов и сборщиков XML, доступных на Android.
Надеюсь, это поможет!
Ответ №2:
Если вы хотите вызвать его на Java, то один из способов сделать это — заставить SoapUI сгенерировать для вас клиентский jar.
http://2mohitarora.blogspot.com/2010/11/how-to-generate-web-service-client-jar.html
Если вы используете Apache cxf, вы можете посмотреть в этой статье, как создать клиента: