Как использовать сервис WCF без WebRequest? - PullRequest
0 голосов
/ 08 ноября 2010

Я пытаюсь взаимодействовать с веб-сервисом. Я публикую SOAP Evelolpe, и он возвращает SOAP-ответ.

Я могу отправлять сообщения в службу и получать ответ с помощью веб-запроса и ответа. Но я хочу сделать это с помощью WCF. Может ли какое-нибудь тело, пожалуйста, помогите мне достичь этого.

Мой HTTP-пост:

public string HttpPost (string uri, string parameters)
{ 
   WebRequest webRequest = WebRequest.Create (uri);
   webRequest.ContentType = "application/soap+xml;  charset=utf-8";
   webRequest.Method = "POST";
   byte[] bytes = Encoding.ASCII.GetBytes (parameters);
   Stream os = null;
   try
   { // send the Post
      webRequest.ContentLength = bytes.Length;   
      os = webRequest.GetRequestStream();
      os.Write (bytes, 0, bytes.Length);         //Send it
   }

   try
   { // get the response
      WebResponse webResponse = webRequest.GetResponse();
      if (webResponse == null) 
         { return null; }
      StreamReader sr = new StreamReader (webResponse.GetResponseStream());
      return sr.ReadToEnd ().Trim ();
   }
    return null;
}

1 Ответ

3 голосов
/ 08 ноября 2010

В основном вам нужно:

  • либо URL, с которого вы можете получить WSDL (часто: (url of your service)?wsdl)
  • или получите файлы WSDL (и любые поддерживающие XSD) у поставщика услуг, например, в виде ZIP или загрузки

Далее: из Visual Studio создайте проект, затем щелкните правой кнопкой мыши References в обозревателе решений и выберите Add Service Reference в контекстном меню.

Add Service Reference Context Menu Item

Либо введите URL-адрес (с ?wsdl) в диалоговом окне, либо введите путь к диску, на котором хранятся файлы WSDL / XSD.

Add Service Reference Dialog Box

Это добавит ссылку на службу WCF для этой службы в ваш проект. Теперь у вас должна быть запись под Service Reference - под тем, что вы видите, находится пара скрытых файлов, которые содержат весь сгенерированный код, необходимый для вызова этой службы.

По сути, один из файлов должен называться (name of your service)Client - и он находится в пространстве имен, которое вы определили при добавлении ссылки на службу (по умолчанию ServiceReference1). Используя это пространство имен, вы сможете создать этого клиента WCF:

using ServiceReference1;  // or whatever you called this namespace

public void CallService()
{
   YourServiceNameClient client = new YourServiceNameClient();

   client.YouShouldSeeServiceMethodsHere();
}

С этим клиентом WCF вы должны иметь возможность легко вызывать методы службы и передавать параметры (строки и т. Д.) Этим методам и, возможно, также получать ответы (в виде строки или как класс) от этой службы способ.

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