XML-клиент SOAP-использование Visual Studio 2010 C# - как?

Я новичок в .NET world, но должен использовать VStudio C# 2010 (.NET 4.0) для создания клиента, который запрашивает данные из веб-службы в формате SOAP Xml. Я искал здесь ответы, но запутался еще больше. В MSDN говорится, что "создание клиентов Web-служб XML" - это наследие .Net версии 4.0, т. е. WSDL-это наследие. Вместо этого используйте "WCF", говорят они. В WCF я заблудился-слишком много и слишком расплывчато. Должно быть, так проще... И все примеры, которые я мог найти в интернете - все они используют WSDL", наследие."

вот определения сервиса, который мне нужно использовать для получения данных из веб-сервиса:

запрос:

POST /catalog.asmx HTTP/1.1
Host: www.somewebsite.com
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "https://www.somewebsite.com/KeywordSearch"

<?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>
    <KeywordSearch xmlns="https://www.somewebsite.com/">
  <searchTerm>string</searchTerm>
  <resultsReturned>int</resultsReturned>
   </KeywordSearch>
  </soap:Body>
</soap:Envelope>

ответ:

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>
    ...some stuff...
  </soap:Body>
</soap:Envelope>

Итак, каков правильный или, по крайней мере, наиболее логичный способ построения этого простого клиента? Какие инструменты / библиотеки / методологии вы бы предложили новичку (при условии, что VS 2010 C#, .NET 4.0 environment)?

1 ответов


Если у вас есть WSDL/XSD для описания этой службы или если вы можете перейти к URL-адресу, чтобы захватить эти метаданные, то WCF с basicHttpBinding вероятно, будет вашим лучшим выбором. WSDL-это наверняка не "наследие" - если что-то является наследием, то это ASP.NET/ASMX веб-сервисы.

учитывая WSDL / XSD или URL, к которому вы можете подключиться, просто сделайте Add Service Reference из Visual Studio, и вы должны быть и работает вызов службы WCF в кратчайшие сроки-поверьте мне! Вы не нужно знать все WCF только для вызова простой веб-службы SOAP.... кроме того, с WCF 4.0 многие вещи - особенно конфигурация - были значительно улучшены и упрощены.

что касается resoures: есть MSDN WCF Developer Center в котором есть все от учебников для начинающих, Статьи и примеры кода.

кроме того, проверьте библиотека приведения экрана на MSDN для некоторых действительно полезных, 10-15 минутных кусков информация практически по любой теме, связанной с WCF, которая может вас заинтересовать.