Не знаю куда разместить тему, но, так как программа пишется на C#, будет гостить тут. А суть вот в чём: пишу паука, который собирает цены с разных сайтов. Программа дописывается постепенно, новые сайты добавляются по мере необходимости. Работает уже несколько лет и никто не жалуется, но периодически встает задача добавить новый сайт для сбора цен. В принципе, это не сложно - сделал довольно удобный класс для этого. Работать с ним легко - сам собирает куки, понимает ответы сервера о переадресации и делает красивые запросы: Code: 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. Иногда какими-то непонятными манипуляциями я это обхожу и потом - "ничего не трогать, ничего не менять!!!". Вот такой запрос: Code: 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 Content-Length посчитан правильно. Проверял через temper data. Кто-нибудь понимает что не так делаю? PS. Запросы посылаются через проксю
Ну дык скорее всего ошибка в обработки куков на стороне сервера. А всё потому что если ты не посылаешь куки то поле Cookie ты вообще не должен слать. А в твоем случае шлется пустое значение этого параметра и по этому скорее всего глюк идет.
Спасибо всем, кто ответил. Проблема была, действительно, в куках и в отсутствии User-Agent. Как только убрал Cookie и указал что данные якобы идут от мозиллы - сервер стал отвечать нормально. Наверное, можно закрывать тему.