Трудно дать точный ответ, не зная, в какой именно среде вы работаете (целевой веб-сервис, предпочтительный язык программирования и т. Д.). Но я попытаюсь дать общий ответ.
Использование веб-службы
Веб-сервисы SOAP часто (всегда?) Предоставляют машиночитаемое описание, которое может быть «использовано» каким-либо инструментом, генерируя код на вашем любимом языке для взаимодействия с API.
Например, Salesforce предлагает описание своего SOAP API, настроенного для данной учетной записи, в форме файла WSDL (язык описания веб-служб). Это XML, как SOAP-запросы / ответы. Для своих приложений я использовал Visual Studio для создания ссылки в своем проекте на API Salesforce с использованием файла WSDL. Остальное делается с помощью простой инициализации объекта и методов. Например:
using ServiceName; // Namespace generated by Visual Studio using the WSDL.
var client = new ServiceClient("username", "password");
client.Create(new ServiceThing("information", "about the new thing"));
Этот пример в C # -подобном синтаксисе вызовет SOAP API для создания некоторого объекта с заданной информацией. Детали сетевого запроса полностью скрыты.
Чтобы узнать, как использовать сервисы целевого API, найдите что-то вроде «потреблять WSDL на [языке по вашему выбору]». Более того, посмотрите, есть ли у целевого веб-сервиса документация, описывающая, как его использовать.
Отправка данных с веб-страницы
Существует любое количество инструментов для извлечения информации из HTTP-запроса POST и обработки его. Я наиболее знаком с ASP.NET. Вы, кажется, знакомы с PHP.
Чтобы не усложнять ситуацию, вы захотите использовать целевой веб-сервис на том же языке, что и ваш веб-сервис, который получает данные от пользователя. Я приведу пример, подобный ASP.NET, который, надеюсь, вы сможете перевести на предпочитаемые вами инструменты:
protected void Page_Load(object sender, EventArgs e)
{
if (Page.IsPostback)
{
// a and b are names of input fields in our page.
string a = Request["a"];
string b = Request["b"];
// Let's assume we've initialized the web service client as a property.
Client.Create(new ServiceThing(a, b));
}
}
Вот, пожалуйста. Не требуется ручное редактирование XML. SOAP XML автоматически генерируется на основе вашего объекта ServiceThing
и отправляется на целевой веб-сервис.
Опять же, это общий ответ на общий вопрос. Если вы обновите свой вопрос с более подробной информацией, я постараюсь отредактировать этот ответ с более подробной информацией.