Я хотел бы отправить запрос как можно скорее на мой веб-сервис.
Как я могу сделать это, используя мой собственный код в C #?
Когда я делаю так, как этот сервер отвечает на 1 запрос около 1 секунды.
Мне не нужно ждать ответа, просто хочу отправить данные.
Когда я запускаю этот код несколько раз (запуск приложения 4-5), он посылает 1 на 1 друг на друга. Это займет то же время, используя только 1 приложение или 5. Что я должен сделать, чтобы отправить его на каждое работающее приложение? Может быть, это открыть 1 порт TCP и нужно открыть несколько? Но не знаю, как это сделать. Это что-то вроде Jmeter send. Но хочу сделать это по собственному коду.
Любые идеи, как я могу отредактировать мой код, чтобы отправить его как можно скорее? Когда я запускаю эту программу раз, она отправляет по одному на каждый графический интерфейс. Не все в одно и то же время.
Код выглядит так:
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);
}
}
}
}