使用C#将SOAP之类的请求尽快发送到Web服务

时间:2018-09-04 07:48:07

标签: c# web-services soap jmeter

我想尽快向我的网络服务发送请求。 如何在C#中使用自己的代码来做到这一点? 当我这样做时,服务器在1秒钟左右响应1个请求。 我不需要等待响应就只想发送数据。 当我几次启动此代码(应用程序启动4-5)时,它会彼此1对1发送。仅使用1个应用程序或5个应用程序就需要花费相同的时间。我应该如何在每个运行的应用程序上发送它?也许它打开1端口TCP并需要打开几个端口?但是不知道怎么做,就像Jmeter send一样。但是要通过自己的代码来完成。 有什么想法我该如何编辑我的代码以尽快发送?当我启动该程序视图时,它会在每个gui上一一发送。并非同一时间都存在。

代码如下:

   public static HttpWebRequest CreateWebRequest()
            {
                HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(@"http://ws/statusService");
                webRequest.Headers.Add(@"SOAP:Action");
                webRequest.ContentType = "text/xml;charset=\"utf-8\"";
                webRequest.Accept = "text/xml";
                webRequest.Method = "POST";
                return webRequest;
            }


 private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
        {


            StreamReader SR = new StreamReader(@"List_of_uid.txt");
            // string[] names = System.IO.File.ReadAllLines(@"List_of_uid.txt");
            int ilosc_zamowien = names.Count();
            ilosc_zamowien = ilosc_zamowien - 1;
            SR.Close();
            int ilosc_label = ilosc_zamowien + 1;
            string zmienna;
            for (int i = 0; i <= ilosc_zamowien; i++)
            {
                Console.WriteLine(names[i]);
                // Execute();
                HttpWebRequest request = CreateWebRequest();
                XmlDocument soapEnvelopeXml = new XmlDocument();
                string xml = @"<?xml version=""1.0"" encoding=""utf-8""?>
                <soapenv:Envelope xmlns:soapenv=""http://schemas.xmlsoap.org/soap/envelope/"" xmlns:ws=""http://ws.om.wyrocznia.cyfrowypolsat.pl/"">
                     <soapenv:Header/>
                         <soapenv:Body>
                    <ws:processTask>
                <executorName>createAgreementEOExecutor</executorName>
                <productOrderNumber>{0}</productOrderNumber>
                <executorParams>
                  <parameters>
                 <entry>
                  <key>waitForNotification</key>
                  <value>true</value>
                       </entry>
                      </parameters>
                  </executorParams>
                    <useOldCallbackUid>true</useOldCallbackUid>
                 </ws:processTask>
                </soapenv:Body>
            </soapenv:Envelope>";


                var NewXML = String.Format(xml, names[i]);

                soapEnvelopeXml.LoadXml(NewXML);

                using (Stream stream = request.GetRequestStream())
                {
                    soapEnvelopeXml.Save(stream);
                }

                using (WebResponse response = request.GetResponse())
                {
                    using (StreamReader rd = new StreamReader(response.GetResponseStream()))
                    {
                           string soapResult = rd.ReadToEnd();
                           Console.WriteLine(soapResult);
                    }
                }
            }
        }

0 个答案:

没有答案
相关问题