2015-02-03 3 views
0

Изучая WCF, я использую webservices (.asmx) для отправки запросов и получения ответов на другие веб-службы. На веб-сервисах я смог вызвать свои веб-методы и протестировать их.WCF для отправки запроса и получения ответа

public string PrnNumber(string prnNumber) 
    { 
     bool flag = false; 

     try 
     { 
      XmlDocument soapEnvelop = new XmlDocument(); 
      soapEnvelop.LoadXml(@"<SOAP-ENV:Envelope xmlns:SOAP-ENV=""http://schemas.xmlsoap.org/soap/envelope/"" xmlns:xsi=""http://www.w3.org/1999/XMLSchema-instance"" xmlns:xsd=""http://www.w3.org/1999/XMLSchema""><SOAP-ENV:Body><HelloWorld xmlns=""http://tempuri.org/"" SOAP-ENV:encodingStyle=""http://schemas.xmlsoap.org/soap/encoding/""><int1 xsi:type=""xsd:integer"">12</int1><int2 xsi:type=""xsd:integer"">32</int2></HelloWorld></SOAP-ENV:Body></SOAP-ENV:Envelope>"); 
      flag = SendSOAP(soapEnvelop); 
     } 
     catch (Exception ex) 
     { 
      Util.LogMessage(ex.Message + ex.StackTrace, "Error", "err"); 
     } 

     return "Success"; 
    } 

    public bool SendSOAP(soapEnvelop) 
    { 
     bool flag = false; 

     try 
     { 
      HttpWebRequest req = (HttpWebRequest)WebRequest.Create("http:***url"); 
      req.Headers.Add("Accept-Encoding", "gzip,deflate"); 
      req.Headers.Add("SOAPAction", "urn:lookupPRN"); 
      req.ContentType = "text/xml;charset=\"utf-8\""; 
      req.Accept = "text/xml"; 
      req.Method = "POST"; 
      req.Proxy = null; 


      try 
      { 
       using (Stream stm = req.GetRequestStream()) 
       { 
        using (StreamWriter stmw = new StreamWriter(stm)) 
        { 
         stmw.Write(xml); 
        } 
       } 

       WebResponse response = req.GetResponse(); 

       Stream responseStream = response.GetResponseStream(); 
       StreamReader reader = new StreamReader(responseStream, Encoding.UTF8); 
       string responseString = reader.ReadToEnd(); 
       Util.LogMessage(responseString, "Response", "res"); 

      } 

      catch (Exception ex) 
      { 
       flag = false; 
       Util.LogMessage(ex.Message + ex.StackTrace, "Error", "err"); 
      } 
      return flag; 
     } 
     finally 
     { 

     } 

    } 

Так что я изначально сделал это в .asmx и я бы войти как запросы и ответы, Как я могу achive это с помощью WCF? точно такая же логика, построение SOAP XML как простого XML в моем коде и обращение к URL-адресу партнеров для ответа.

+1

Мы не сервис кода письма. Вы бы назвали WCF ** с помощью WCF ** не через что-то еще, которое пытается его подражать. Не уверен, почему вы сделали это в первую очередь – MickyD

ответ

0

Предлагаем вам провести некоторое время, просмотрев несколько статей WCF «Начало работы».

Следующая обеспечивают хороший, базовый обзор: http://blogs.msdn.com/b/brunoterkaly/archive/2013/10/18/getting-started-with-wcf-windows-communication-foundation-running-and-debugging-quickly.aspx
http://www.codeproject.com/Articles/33995/Getting-Started-with-WCF
http://www.codeproject.com/Articles/42643/Creating-and-Consuming-Your-First-WCF-Service

Смежные вопросы