tosinp Ответов: 1

протокол HTTP запросы WebRequest в C#


привет
Я написал настольное приложение c# , которое использует webrequest/response для публикации больших записей на удаленном веб-сайте.

когда я тестирую приложение локально, указывая свой локальный сайт в качестве url-адреса, приложение работает нормально, но когда я пытаюсь подключиться к удаленному (живому) веб-сайту, приложение становится очень медленным:требуется более двух дней, чтобы загрузить 2000 записей.

Пожалуйста, мне нужен более надежный и быстрый способ отправить эти записи.
(n.b.:Я использую Backgroundworker для многопоточности)
ниже приведена копия моего кода:

&ЛТ;заранее Ланг="КС"и GT;общественная строка PostDataToWeb(postData строку, строку URL)
{
строка возврат;
Запрос WebRequest = WebRequest.Создать(url);
запрос.И quot;сообщение&ампер мне способ = &амп;;;;
с Byte[] ByteArray с = кодировка.Кодировке utf8.GetBytes(postData);

запрос.Значение contentType = &ампер;quot;и применение/х-www-формы-urlencoded&усилителя;я;;

запрос.ContentLength = byteArray.Длина;

использование (Stream dataStream = request.GetRequestStream())
{
поток данных.Напишите(byteArray, 0, byteArray.Длина);
}
использование (WebResponse response = request.GetResponse())
{
retu = (((HttpWebResponse)ответ).StatusDescription);
}
возврат возврат;
}</pre>


Теперь я включил вышеприведенный метод в цикл, который проходит через datatable для всех записей и отправляет их строка за строкой.

спасибо за предвкушение.
Тосин

1 Ответов

Рейтинг:
2

Christian Graus

Если это быстрее локально, то проблема заключается в скорости вашей сети. Ничто не сделает его быстрее, кроме как сделать ваши данные меньше. А что, если вы застегнете его и пошлете молнию ?


tosinp

проблема заключается в следующем: я отправляю данные по одной записи за раз, поэтому даже если скорость сети низкая(что не так), она не должна быть такой медленной, как отправка 2000 записей за два дня. из 10 000. Я пробовал отправлять данные в виде одного файла, затем он загружает до 500 записей за 2 минуты и тайм-аут. Но я сделал это на PHP. Я хочу использовать c# и хочу, чтобы ti был настольным приложением

Большое спасибо за Ваш быстрый ответ
тосинп