А суть вот в чём: пишу программу, которая собирает цены с разных сайтов. Программа дописывается постепенно, новые сайты добавляются по мере необходимости. Работает уже несколько лет и никто не жалуется, но периодически встает задача добавить новый сайт для сбора цен.
В принципе, это не сложно - сделал довольно удобный класс для этого. Работать с ним легко - сам собирает куки, понимает ответы сервера о переадресации и делает красивые запросы:
Код:
SystemAdapter.SiteQueryer.NewHost = «karminavto.ru»;
// Шаг 1. Получаем сессию
SystemAdapter.SiteQueryer.Get( 1000, «/» );
// Шаг 2. Запрашиваем номер
sCurrentPath = «/parts/search»;
string sPostData = «frm[articul]=» + pPosition.sNumber;
sResponse = SystemAdapter.SiteQueryer.Post(5000, sCurrentPath, sPostData);
Но всегда... ВСЕГДА - возникают проблемы когда на сервере крутится IIS.
Иногда какими-то непонятными манипуляциями я это обхожу и потом - «ничего не трогать, ничего не менять!!!».
Вот такой запрос:
Код:
-------------
POST http://online.tmtr.ru/login.aspx HTTP/1.1
Host: online.tmtr.ru
Cookie:
Accept-Charset: windows-1251
Content-Type: application/x-www-form-urlencoded
Content-Length: 114
__VIEWSTATE=ghgho&__EVENTVALIDATION=p24d&tbLogin=RSA&tbPassword=UngD4Wr3vx&btSubmit=%D0%92%D0%BE%D0%B9%D1%82%D0%B8
-------------
Выдает: 500 Internal server error
Проблема явно в POST-данных, так как если убрать __VIEWSTATE=ghgho&__EVENTVALIDATION=p24d, то ошибки нет.
Content-Length посчитан правильно. Проверял через temper data.
Как уже говорил, такие проблемы с запросами к IIS случаются регулярно и пока до сих пор не понял из-за чего.
Кто-нибудь понимает что не так делаю?
PS. Запросы посылаются через проксю
Форум —
Development
