Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как при помощи IdHTTP зайти в нужный фрейм? 
:(
    Опции темы
ksili
Дата 8.12.2007, 12:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2069
Регистрация: 3.11.2005
Где: Красноярск

Репутация: 1
Всего: 17



Я при помощи TIdHTTP захожу на многофреймовую HTML-страницу:
Код

TStringStream *Info= new TStringStream("");

IdHTTP1->Get("http://some_url.ru", Info);


В Info после этого содержится вот такое:
Код

<HTML>
<HEAD>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="Cache-Control" content="no-cache">
<meta http-equiv="Content-language" content="ru-SU">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<meta http-equiv="refresh" content="0; url=http://some_url.ru/cgi-bin/BilUtil.dll/BilMenu">
</HEAD>
<BODY>
</BODY>
</HTML>


А если на неё обычно зайти и сохранить как HTML. То сохраняется такое:
Код

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/1999/REC-html401-19991224/frameset.dtd">
<html><head><meta http-equiv="pragma" content="no-cache"><meta http-equiv="Cache-Control" content="no-cache"><meta http-equiv="Content-Type" content="text/html; charset=windows-1251"><meta http-equiv="Content-language" content="ru-SU"><title>1654437 [SIPID+1 owned]</title>
<frameset COLS="190,*">
<frame SRC="MTK?oper=1&uid=18840550" NAME="lframe"    marginheight="0" marginwidth="0" scrolling="no" noresize="noresize" frameborder="0">
<frameset ROWS="13,*">
<frame SRC="MTK?oper=5" NAME="upmainframe" marginheight="0" marginwidth="0" scrolling="no" noresize="noresize" frameborder="0">
<frame SRC="MTK?oper=5" NAME="mainframe" marginheight="0" marginwidth="0" scrolling="auto" frameborder="0">
</frameset>
</frameset>
</html>


Я так понимаю в Info TIdHTTP получает содержимое одного из фреймов. Как мне выбрать конкретный фрейм?

Добавлено @ 12:58
У меня несколько хелпов по Indy и ни в одном из них даже слова frame (фрейм) нету :(

Это сообщение отредактировал(а) ksili - 11.12.2007, 13:36


--------------------
Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с)
PM MAIL   Вверх
VSergeyV
Дата 11.12.2007, 11:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 299
Регистрация: 9.5.2006
Где: Новосибирск

Репутация: нет
Всего: 3



Мое мнение такое - фреймы это по сути несколько веб-страниц (со своими URL) отображаемых на одной странице, если нужен конретный фрейм - то нужно использовать соответсвующию ссылку
PM MAIL ICQ   Вверх
ksili
Дата 11.12.2007, 11:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2069
Регистрация: 3.11.2005
Где: Красноярск

Репутация: 1
Всего: 17



Ну допустим так. Но как-то сложновато определить нужную ссылку на фрейм.
Там основная страница имеет URL такого содржания:
Код

https://customer.voipexchange.ru/cgi-bin/Exchange.dll/MTK

А все остальные ссылки - то же самое плюс через вопросик указание некоторых параметров.
У меня что-то IdHTTP не хавает ни такое
Код

IdHTTP1->Get("https://customer.voipexchange.ru/cgi-bin/Exchange.dll/MTK?oper=4&uid=18840550", Info);

ни с указанием порта:
Код

IdHTTP1->Get("https://customer.voipexchange.ru:443/cgi-bin/Exchange.dll/MTK?oper=4&uid=18840550", Info);

Точнее, выполняется, но в Info возвращается всегда одно и то же: "\x1F‹\b" или "‹" (что то же самое)

Особо подозрительно смотрится dll внутри пути

Это сообщение отредактировал(а) ksili - 11.12.2007, 11:58


--------------------
Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с)
PM MAIL   Вверх
ksili
Дата 11.12.2007, 13:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2069
Регистрация: 3.11.2005
Где: Красноярск

Репутация: 1
Всего: 17



Заметил, что в хидерах после чтения по вышеуказанным ссылкам возвращается следующее:
Код

Date: Tue, 11 Dec 2007 10:21:04 GMT
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET
Pragma: no-cache
Content-Encoding: gzip
Content-Type: text/html; charset=windows-1251
Content-Length: 283

Так может страница читается, но её содержимое сжато gzip'ом, а те закорючки - стандартное начало gzip'овского архива? Кто-нибудь сталкивался с подобным?


--------------------
Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с)
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0478 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.