Я хочу вызвать веб-службу ASP.NET через запрос POST http с использованием C # (т.е. я не хочу использовать объект SoapHttpClientProtocol, созданный при запуске wsdl.exe).
Насколько я могу судить, процесс включает в себя:
создание объекта HttpWebRequest, который указывает на URL / метод веб-службы, с методом;
Создание конверта SOAP xml;
Сериализация любых параметров, которые я хочу передать в веб-метод с использованием XmlSerializer;
Выполнение запроса и разбор ответа.
Я хотел бы сделать это без необходимости копировать и использовать сгенерированный код.
(1) кажется довольно простым;
(2) Я не знаю, является ли конверт стандартным или как он должен меняться в зависимости от метода веб-сервиса, который я вызываю. Наверное, мне может понадобиться добавить пользовательские заголовки мыла, если этого требует служба?
(3) Как происходит это? Я предполагаю, что мне нужно сделать что-то вроде этого:
MyClass myObj;
XmlSerializer ser = new XmlSerializer(myObj.GetType());
TextWriter writer = new StringWriter();
ser.Serialize(writer, myObj);
string soapXml = writer.ToString();
writer.Close();
Кроме того, я думаю, что я должен добавить soapXml к soap: Body body
(4) Я считаю, что я должен извлечь и десериализовать содержимое мыла: элемент тела, а также. Можно ли использовать обратную процедуру в (3)?
Спасибо
* +1037 * * К. +1038 *