Модераторы: Snowy, Poseidon, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Delphi и HTML-тэги 
:(
    Опции темы
Zabul
Дата 5.9.2008, 09:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 5.9.2008

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



Всем здравствуйте ! Хотел спросить у знающих людей совета. Задавал уже этот вопрос в Королевстве Delphi, но пока безрезультатно. Итак: давно уже занят с одной странной проблемой, связанной с запуском программки, реализующей с помощью Web-сервиса связь с определенным сервером. Дело в следующем: в исходном коде загружаемой страницы присутствует несколько тэгов <link>, а у закрывающих их тэгов отсутствует символ "/", т.е. в HTML-тексте выглядит примерно так:

                     <link rel="icon" href="/favicon.ico" type="image/ico">

а должно бы по идее

                     <link rel="icon" href="/favicon.ico" type="image/ico" />

Все браузеры нормально съедают эти тэги, но с Delphi этот трюк не проходит: при попытке вызова сайта через сгенерированный с помощью WSDL модуль программа натыкается на закрывающий тэг </head>, что приводит к ошибке, поскольку он воспринимается ею как закрывающий тэг для <link>. Ту же самую ошибку на той же самой строке получаю, если пытаюсь указать местонахождение WSDL-файла в компоненте HTTPRIO следующим образом: 

http://<адрес>?WSDL

Может, кто-то знает, как это исправить ?

Вполне может быть, что сейчас этот слэш вышел из моды за ненадобностью, хотя в интернете полно сайтов именно с таким описанием: 

http://www.htmlquick.com/reference/tags/link.html 
или 
http://www.mediaevent.de/xhtml/link.html

Однако не это важно, а то, что Delphi хочет этот слэш ! Можно ли как-то отключить в HTTPRIO эту проверку ? Потому что исходник загружаемой страницы я по понятным причинам поправить не могу.

PM MAIL   Вверх
SneG0K
Дата 5.9.2008, 22:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Max Mara
***


Профиль
Группа: Завсегдатай
Сообщений: 1887
Регистрация: 1.12.2007
Где: Wis Dells

Репутация: 2
Всего: 54



Цитата(Zabul @  5.9.2008,  08:26 Найти цитируемый пост)
а должно бы по идее

С чего бы это? Значит разработчику удобно было не ставить косые черты. Не нравится юзай pos(), copy() и del()
PM WWW Skype   Вверх
Zabul
Дата 8.9.2008, 12:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 5.9.2008

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



Да вопрос ведь совсем не в этом, мне все равно как удобно разработчику, а со строковыми функциями я хорошо знаком. Мне интересно, почему HTTPRIO брыкается, или что там за причина с этой ошибкой ? Как средствами Delphi это можно обойти ?
PM MAIL   Вверх
sai_NT
Дата 8.9.2008, 16:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 72
Регистрация: 8.8.2007

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



Цитата(Zabul @  8.9.2008,  12:50 Найти цитируемый пост)
Как средствами Delphi это можно обойти ? 


или
Первое: разобраться с этим модулем самому или поискать подобную проблему с гугле
или
Второе: отказаться от этого компонента и заюзать другой: Инди, например, а дальше уже юзать те методы, о которых писал SneG0K.
PM MAIL   Вверх
Zabul
Дата 8.9.2008, 16:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 5.9.2008

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



sai_NT, спасибо за предложения, однако:

первое: искал почти две недели, ничего похожего не нагуглил, сам разобраться не могу - опыта нет

второе: а почему тогда во всех примерах из сети и в книжках WEB-сервис для Delphi организуется с помощью HTTPRIO ? Если это можно как-то сделать с помощью компонентов Indy или еще каких-нибудь, то было бы неплохо увидеть это где-то. Может, есть ссылка на описание? Поделитесь, если не жалко  smile 
PM MAIL   Вверх
SneG0K
Дата 8.9.2008, 17:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Max Mara
***


Профиль
Группа: Завсегдатай
Сообщений: 1887
Регистрация: 1.12.2007
Где: Wis Dells

Репутация: 2
Всего: 54



Zabul, де ты видел примеры на этом HTTPRIO? И не видеть на индейцах? Так искал значит! 

Код

var
 s:string;
begin
 s:= IdHTTP.Get('google.com'); //в переменной S будет код страницы
end;

PM WWW Skype   Вверх
Zabul
Дата 8.9.2008, 17:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 5.9.2008

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



SneG0K, видел именно то, что виделось - простейший работающий пример везде с использованием именно этой компоненты. Что до "индейцев", то для них и не искал, поскольку не подозревал, что и с их помощью можно WEB-сервис организовать. Спасибо за кусочек, однако хотелось бы поподробнее про это, а то гугл выдал кучу чего-то заумного, а мне бы чего попроще, как это было в примере с HTTPRIO smile 
PM MAIL   Вверх
aktuba
Дата 8.9.2008, 18:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Смышленный
***


Профиль
Группа: Завсегдатай
Сообщений: 1915
Регистрация: 24.4.2006
Где: Планета Земля

Репутация: 9
Всего: 38



С индейцами можно, но геморно ;)
А насчет проблемы - как мне кажеться, есть простое решение - указать DTD в начале страницы, соответствующее документу.


--------------------
user posted image
PM MAIL WWW Skype   Вверх
Zabul
Дата 9.9.2008, 09:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 5.9.2008

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



aktuba, уже интересно. Правда, с XML и в частности DTD у меня не очень, имею чисто теоретические познания в этой области. Насколько помню, DTD - это такой специальный отдельный файл-описание для определенного XML-документа. Правильно ли я понял Вашу идею - прописать имя этого DTD в начале моего WSDL (спрашиваю, потому что память подсказывает - с XML делается именно так) ? Или опять чушь сморозил? Очень хотелось бы попробовать реализовать Ваш метод, потому как с индями все выглядит слишком сложно  smile 
PM MAIL   Вверх
aktuba
Дата 9.9.2008, 09:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Смышленный
***


Профиль
Группа: Завсегдатай
Сообщений: 1915
Регистрация: 24.4.2006
Где: Планета Земля

Репутация: 9
Всего: 38



Открой код этой страницыи посмотри первую строку:
Код

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">


От этой строки зависит многое ;)


--------------------
user posted image
PM MAIL WWW Skype   Вверх
Zabul
Дата 9.9.2008, 11:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 5.9.2008

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



Так это выглядит:

Код

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">


Вообще-то этот файл с HTML-структурой имеет расширение jsp, во всяком случае в адресной строке в конце стоит файл с таим расширением. Это важно?
PM MAIL   Вверх
Zabul
Дата 9.9.2008, 12:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 5.9.2008

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



Поразмыслив и поэкспериментировав, пришел к такому выводу: всему виной этот самый jsp-модуль. Чтобы получить доступ к WSDL-файлам интересующего сайта, необходимо ввести логин и пароль (во всяком случае, появляется такая страница с запросом, если ввести строчку http://.....?WSDL в строке браузера). Пароль и логин мне известны, при их вводе вручную получаю доступ к сайту, правда, с парой дебильных сообщений от Apache Tomcat. Если же теперь ввожу http://.....?WSDL в браузере, передо мной наконец-то предстает WSDL во всей своей красе. Тогда другой вопрос: можно ли как-то подсунуть программно этому jsp логин и пароль? Не знаю, как сделать в Delphi, и даже такой серьезный продукт как XMLSpy от Altova не в состоянии туда пробиться. Есть ли способ это сделать?  smile 
PM MAIL   Вверх
aktuba
Дата 9.9.2008, 14:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Смышленный
***


Профиль
Группа: Завсегдатай
Сообщений: 1915
Регистрация: 24.4.2006
Где: Планета Земля

Репутация: 9
Всего: 38



снифать траффик и смотреть ;)


--------------------
user posted image
PM MAIL WWW Skype   Вверх
Zabul
Дата 9.9.2008, 15:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 5.9.2008

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



Не совсем понял, зачем снифать? Мне же известны входные данные, или я опять не в ту степь?
PM MAIL   Вверх
aktuba
Дата 10.9.2008, 08:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Смышленный
***


Профиль
Группа: Завсегдатай
Сообщений: 1915
Регистрация: 24.4.2006
Где: Планета Земля

Репутация: 9
Всего: 38



Посмотри, как осуществляется авторизация...


--------------------
user posted image
PM MAIL WWW Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Сети"
Snowy
Poseidon
MetalFan

Запрещено:

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

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

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

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

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


 




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


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

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