2017-07-21 84 views
-2

我正在寻找在c#中创建soap消息, 这里我创建了一个客户端,使用命令提示符下的命令现在尝试创建一个soap消息,但我对这个概念非常陌生,所以无法找到正确的方法任何人对此有何想法?如何在c#中创建SOAP消息?

+0

你跑什么命令来创建客户端?你能分享客户代码吗?您为编写SOAP消息编写了哪些代码? –

+0

你在传递什么,你在哪里传递,为什么传递,你在犯什么错误,我们无法知道没有看到你的代码。因此,如果您需要我们提供最适合您的问题的解决方案,请分享代码。 –

回答

1

示例代码来创建SOAP请求

using System; 
using System.IO; 
using System.Net; 
using System.Xml; 

namespace UsingSOAPRequest 
{ 
    public class Program 
    { 
     static void Main(string[] args) 
     { 
      //creating object of program class to access methods 
      Program obj = new Program(); 
      Console.WriteLine("Please Enter Input values.."); 
      //Reading input values from console 
      int a = Convert.ToInt32(Console.ReadLine()); 
      int b = Convert.ToInt32(Console.ReadLine()); 
      //Calling InvokeService method 
      obj.InvokeService(a, b); 
     } 
     public void InvokeService(int a, int b) 
     { 
      //Calling CreateSOAPWebRequest method 
      HttpWebRequest request = CreateSOAPWebRequest(); 

      XmlDocument SOAPReqBody = new XmlDocument(); 
      //SOAP Body Request 
      SOAPReqBody.LoadXml(@"<?xml version=""1.0"" encoding=""utf-8""?> 
      <soap:Envelope xmlns:soap=""http://schemas.xmlsoap.org/soap/envelope/"" xmlns:xsi=""http://www.w3.org/2001/XMLSchema- instance"" xmlns:xsd=""http://www.w3.org/2001/XMLSchema""> 
      <soap:Body> 
       <Addition xmlns=""http://tempuri.org/""> 
        <a>" + a + @"</a> 
        <b>" + b + @"</b> 
       </Addition> 
       </soap:Body> 
      </soap:Envelope>"); 


      using (Stream stream = request.GetRequestStream()) 
      { 
       SOAPReqBody.Save(stream); 
      } 
      //Geting response from request 
      using (WebResponse Serviceres = request.GetResponse()) 
      { 
       using (StreamReader rd = new StreamReader(Serviceres.GetResponseStream())) 
       { 
        //reading stream 
        var ServiceResult = rd.ReadToEnd(); 
        //writting stream result on console 
        Console.WriteLine(ServiceResult); 
        Console.ReadLine(); 
       } 
      } 
     } 

     public HttpWebRequest CreateSOAPWebRequest() 
     { 
      //Making Web Request 
      HttpWebRequest Req = (HttpWebRequest)WebRequest.Create(@"http://localhost/Employee.asmx"); 
      //SOAPAction 
      Req.Headers.Add(@"SOAPAction:http://tempuri.org/Addition"); 
      //Content_type 
      Req.ContentType = "text/xml;charset=\"utf-8\""; 
      Req.Accept = "text/xml"; 
      //HTTP method 
      Req.Method = "POST"; 
      //return HttpWebRequest 
      return Req; 
     } 
    } 
} 
+0

我需要在.config文件中添加任何东西吗? – Madhav