IdHTTP1.Request.Host:='http://suncity.combats.ru';
IdHTTP1.Request.Method:=hmGET;
IdHTTP1.Request.URL:='http://suncity.combats.ru/inf.pl?login=-крутик-';
IdHTTP1.Request.Accept:='*/*';
IdHTTP1.Request.Referer:='http://suncity.combats.ru';
IdHTTP1.Request.UserAgent:='Mozilla/4.0 (compatible; M5IE5.00; Windows 98)';
IdHTTP1.Request.CacheControl:='no-cache';
IdHTTP1.Request.Pragma:='no-cache';
idhttp1.Request.ContentType:='text/html; charset=windows-1251';
IDHTTP1.get('http://suncity.combats.ru/inf.pl?login=-крутик-')
Компонент idhttp Помогите плиз.
Я использую компонент IDHTTP и пользуюсь процедуркой
richedit.text:=IDHTTP.get(url);
Так вот с простых страничек он ХТМЛ код достает, но вот с этой ссылки: "http://suncity.combats.ru/inf.pl?login=-крутик-"
инфу он доставать не хочет, вместо нее он достает "< и симпол в виде квадратика"
А если ту же ссылку грузить через простой броузер, то траница элементарно открывается, но мне не нужно что бы страница загружалась в броузере, мне просто нужен ее ХТМЛ код в ричэдите....
Помогите мне плиз, кто знает в чем ошибка или как лучше и проще это сделать....
Тут ведь нужно передать скрипту inf.pl логин, подождать завершения обработки и лишь потом прочитать готовую страницу.
Плизззззззз :)
Честно говоря, в perle не силен. Скачать только этот файл (само содержимое скрипта) через http не выходит... А через ftp вообще не коннектится...
Может кто то еще знает, и сможет это сделать???? Я просто вообще не догоняю, как это делается, искал в инете, нашел, что то не то.... :(
ЛЮЮЮЮДИИИИ ПЛЛЛЛИИИИЗЗЗЗЗЗ ХЕЕЕЕЕЛЛЛЛЛППППППППП
соединение с suncity. combats. ru
Sat Jun 10 09:54:16 2006 Соединяемся с suncity.combats.ru [IP=85.112.148.24:80]
Sat Jun 10 09:54:17 2006 Соединение установлено
Sat Jun 10 09:54:17 2006 GET /inf.pl?login=-крутик- HTTP/1.1
Sat Jun 10 09:54:17 2006 Host: suncity.combats.ru
Sat Jun 1009:54:172006 Accept: */*
Sat Jun 10 09:54:17 2006 Referer: http://suncity.combats.ru
Sat Jun 10 09:54:17 2006 User-Agent: Mozilla/4.0 (compatible; M5IE5.00; Windows 98)
Sat Jun 10 09:54:17 2006 Pragma: no-cache
Sat Jun 10 09:54:17 2006 Cache-Control: no-cache
Sat Jun 10 09:54:17 2006 Connection: close
Sat Jun 10 09:54:17 2006 HTTP/1.1 200 OK
Sat Jun 10 09:54:17 2006 Server: 0W/0.7n
Sat Jun 10 09:54:17 2006 Date: Sat, 10 Jun 2006 05:54:09 GMT
Sat Jun 10 09:54:17 2006 Connection: Close
Sat Jun 10 09:54:17 2006 Content-Type: text/html; charset=windows-1251
Sat Jun 10 09:54:17 2006 Content-Length: 12530
Sat Jun 10 09:54:17 2006 pragma: no-cache
Sat Jun 10 09:54:17 2006 cache-control: no-cache
Sat Jun 10 09:54:17 2006 Переход б состояние [Закачка]
Хм.... И что это дало? :))))))Мне ничего обсолютно :))))
Попробуй записать в свойства IDHTTP параметры, которые передает FlashGet.
Попробывать заполнить опции idhttp попробовал..... Только вот что то не получилось..... Орет на ошибки, которых я еще не видел, может я что не так заполнил???? Можно все по пунктам "Я тупой..." плиззззз.....
А что-нть типа TCppWebBrowser (вкладка Internet) в дельфях отсутствует?
Вкладка интернет есть, но там нет такого бройзера - есть стндартный webbrowser или TcpClient1, сервер к нему. Только вот там гета в этом клиенте нету.... У меня Дельфя 7-я, стандартные компоненты.
TCppWebBrowser в Borland C++ Builder и TWebBrowser в Borland Delphi - один и тот же компонент
:))) Но проку то от этих веььроузеров мне не прибавится с коипонентом indyHTTP, если вы хотите сказать, что мне надо из броузера код вынимать, то могу сразу ответить - эта штука несколько медленная и я с ним уже наработался, мне нжен именно ИДХТТП.... Или этот ИДХТТП с джавой не дружит?
хотя может я и не прав..... нет времени щас проверять..... хелп по Indy где-то потерялся.... (
[/QUOTE]
Похоже на это. При попытке скачать вылезает ошибка 302.
Коды третьего класса (3xx) сообщают о перенаправлениях; чтобы выполнить запрос нужны еще какие-то действия.
302 - Moved Temporarily. Ресурс временно перемещен
(я там уже все методом тыка перетыкал....)
Я понимаю, что там как раз запрос осуществляется, но я уверен что все ошибки из-за неправильного построения нашего запроса на сервер....
Есть конечно вариант(используем интренет эксплорер - все ОК), что первым с сервера скачивается скрипт, по которому осуществляется этот запрос на сервер, а уже после осуществляется реальный запрос на страничку. Вы правы, что страничка динамическая, но ведь, есть еще одно НО, ее адресс ведь не меняется, есть конечно тупой вариант, что серверу нужно некоторое время(1-100милисек) для ее построения, а после эксплорер незаметно обновляет свой запрос и получает нормальную страничку.
Я уверен, что есть способ ее вытащить с сервака, при IDHTTP, но моей сооброжалки тут не хватит...
А мне кажется, что нужно делать в определенном порядке. Т.е. ошибкой 302 нам дали "от ворот поворот", потом, опять же кажется, нужно заполнить поля referrer и что-нибудь еще и попытаться снова
Есть 2 варианта.... Либо выдают те 2 символа (<+ квадратик)
либо ошибка HTTP 1.0 400 - я воть не знаю, почему у меня это вылетает....
Код:
А какие ставишь ты?
Ставлю все, по тому списку - который у ты раньше прислал, только я это в компоненте прописываю.....
Там кстати некуда поставить несколько настроек, например графы СЕРВЕР нет и еще что то....
Там кстати некуда поставить несколько настроек, например графы СЕРВЕР нет и еще что то....[/QUOTE]
Это от версии Indy зависит...
Может в этом вся проблема???
Код:
procedure TForm1.IdHTTP1Redirect(Sender: TObject; var dest: String;
var NumRedirect: Integer; var Handled: Boolean;
var VMethod: TIdHTTPMethod);
begin
richEdit1.Text:=IdHTTP1.get(dest)
end;
var NumRedirect: Integer; var Handled: Boolean;
var VMethod: TIdHTTPMethod);
begin
richEdit1.Text:=IdHTTP1.get(dest)
end;
Но у меня пишет Read Timeout
Надо делать так: url:='http://suncity.combats.ru/inf.pl?login='+urlencode('-крутик-')
У меня ругается, что этот " urlencode" - не зарегистрирован.....
Куда его зарегить то? В хелпе он вообще выглядит как процедурка к компоненту.... хз какому...
использовать можно не создавая объект
Добавил в uses IdURI использовал код:
url:='http://suncity.combats.ru/inf.pl?login='+tIdURI.urlencode('-крутик-');
richedit1.Text:=idhttp1.Get(url);
орет на: "Protocol field is empty" - но я ведь не создавал компонет...
:(
попробуй
url := tiduri.urlencode('http://suncity.combats.ru/inf.pl?login=-крутик-');
Было время я тоже писал программу, которая вытаскивала страничку, разбирала ее и работала с данными, а еще отправляла посты на сервер по post протоколу. Все получилось не сразу и не вдруг. ;)
Пришлось найти персональный прокси сервер и ходить через него на сервачок и полностью изучить протокол взаимодействия с сервером. Проблема может быть в том, что сервер использует сессии, куки или определяет, что используется не браузер, а самопальная программа.
Я когда решал свою задачу полностью эмулировал Интернет Эксплорер, т.е. сервер думал, что с ним через IE общаются и все было ОК.
url := tiduri.urlencode('http://suncity.combats.ru/inf.pl?login=-крутик-');
не пашет..... :(
Было время я тоже писал программу, которая вытаскивала страничку, разбирала ее и работала с данными, а еще отправляла посты на сервер по post протоколу. Все получилось не сразу и не вдруг. ;)
Пришлось найти персональный прокси сервер и ходить через него на сервачок и полностью изучить протокол взаимодействия с сервером. Проблема может быть в том, что сервер использует сессии, куки или определяет, что используется не браузер, а самопальная программа.
Я когда решал свою задачу полностью эмулировал Интернет Эксплорер, т.е. сервер думал, что с ним через IE общаются и все было ОК.[/QUOTE]
Хм..... И как этого добиться????
[QUOTE=ratttx]Хм..... И как этого добиться????[/QUOTE]idHTTP.request.useragent - здесь пропишите то, что передает ie серверу в поле user agent(на сколько я знаю, для бк необходим ie >5.5), типичный пример: "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 2.0.50727)"
Неа, ругается на то, что "аддрес мувед" ошибка 302 помойму....