SOAP xml клиент - с помощью Visual Studio 2010 c # - как? - PullRequest
6 голосов
/ 22 декабря 2010

Я новичок в мире .NET, но должен использовать VStudio C # 2010 (.NET 4.0) для создания клиента, который запрашивает данные из веб-службы в стиле SOAP Xml. Я искал здесь ответы, но запутался еще больше. MSDN говорит, что «Создание клиентов 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)?

1 Ответ

5 голосов
/ 22 декабря 2010

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...