Я занят приложением C#, которое должно загружать данные на сайт. Я использую http post для загрузки данных, но это слишком медленно для нашего приложения. Для загрузки небольшого количества данных требуется около 1,5 секунд. Я попробовал два разных подхода.C# Сообщение http request slow
подход 1, используя WebRequest:
WebRequest request = WebRequest.Create(packet.url.ToString());
request.Method = "POST";
request.Proxy = null;
byte[] byteArray = Encoding.UTF8.GetBytes(packet.postData);
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = byteArray.Length;
Stream dataStream = request.GetRequestStream();
dataStream.Write(byteArray, 0, byteArray.Length);
dataStream.Close();
WebResponse response = request.GetResponse();
dataStream = response.GetResponseStream();
StreamReader reader = new StreamReader(dataStream);
string responseFromServer = reader.ReadToEnd();
reader.Close();
dataStream.Close();
response.Close();
Approach2, используя WebClient:
string responseFromServer;
using (WebClient wc = new WebClient())
{
wc.Headers[HttpRequestHeader.ContentType] = "application/x-www-form-urlencoded";
responseFromServer = wc.UploadString(packet.url, packet.postData);
}
Оба они имеют точно такую же задержку. Я тестировал одно и то же в javascript. Я использовал xmlhttprequest для отправки тех же данных на сервер, и для загрузки данных потребовалось меньше 0,5 с. Пожалуйста, дайте мне знать, если есть более быстрый способ сделать это в C#.
Был ли C# и Javascript запущен на той же машине и сетевой среде? –
Вы уверены, что это не проблема сервера? – BrokenGlass
Возможный поиск DNS, вызывающий медленность. – leppie