![]() |
|
Модераторы: Snowy, Poseidon, MetalFan |
![]()
|
|
| Zabul |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 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 эту проверку ? Потому что исходник загружаемой страницы я по понятным причинам поправить не могу. |
|||
|
||||
| SneG0K |
|
|||
|
Max Mara ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1887 Регистрация: 1.12.2007 Где: Wis Dells Репутация: 2 Всего: 54 |
||||
|
||||
| Zabul |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 5.9.2008 Репутация: нет Всего: нет |
Да вопрос ведь совсем не в этом, мне все равно как удобно разработчику, а со строковыми функциями я хорошо знаком. Мне интересно, почему HTTPRIO брыкается, или что там за причина с этой ошибкой ? Как средствами Delphi это можно обойти ?
|
|||
|
||||
| sai_NT |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 72 Регистрация: 8.8.2007 Репутация: 2 Всего: 3 |
||||
|
||||
| Zabul |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 5.9.2008 Репутация: нет Всего: нет |
sai_NT, спасибо за предложения, однако:
первое: искал почти две недели, ничего похожего не нагуглил, сам разобраться не могу - опыта нет второе: а почему тогда во всех примерах из сети и в книжках WEB-сервис для Delphi организуется с помощью HTTPRIO ? Если это можно как-то сделать с помощью компонентов Indy или еще каких-нибудь, то было бы неплохо увидеть это где-то. Может, есть ссылка на описание? Поделитесь, если не жалко |
|||
|
||||
| SneG0K |
|
|||
|
Max Mara ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1887 Регистрация: 1.12.2007 Где: Wis Dells Репутация: 2 Всего: 54 |
Zabul, де ты видел примеры на этом HTTPRIO? И не видеть на индейцах? Так искал значит!
|
|||
|
||||
| Zabul |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 5.9.2008 Репутация: нет Всего: нет |
SneG0K, видел именно то, что виделось - простейший работающий пример везде с использованием именно этой компоненты. Что до "индейцев", то для них и не искал, поскольку не подозревал, что и с их помощью можно WEB-сервис организовать. Спасибо за кусочек, однако хотелось бы поподробнее про это, а то гугл выдал кучу чего-то заумного, а мне бы чего попроще, как это было в примере с HTTPRIO
|
|||
|
||||
| aktuba |
|
|||
![]() Смышленный ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1915 Регистрация: 24.4.2006 Где: Планета Земля Репутация: 9 Всего: 38 |
С индейцами можно, но геморно ;)
А насчет проблемы - как мне кажеться, есть простое решение - указать DTD в начале страницы, соответствующее документу. -------------------- ![]() |
|||
|
||||
| Zabul |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 5.9.2008 Репутация: нет Всего: нет |
aktuba, уже интересно. Правда, с XML и в частности DTD у меня не очень, имею чисто теоретические познания в этой области. Насколько помню, DTD - это такой специальный отдельный файл-описание для определенного XML-документа. Правильно ли я понял Вашу идею - прописать имя этого DTD в начале моего WSDL (спрашиваю, потому что память подсказывает - с XML делается именно так) ? Или опять чушь сморозил? Очень хотелось бы попробовать реализовать Ваш метод, потому как с индями все выглядит слишком сложно
|
|||
|
||||
| aktuba |
|
|||
![]() Смышленный ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1915 Регистрация: 24.4.2006 Где: Планета Земля Репутация: 9 Всего: 38 |
Открой код этой страницыи посмотри первую строку:
От этой строки зависит многое ;) -------------------- ![]() |
|||
|
||||
| Zabul |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 5.9.2008 Репутация: нет Всего: нет |
Так это выглядит:
Вообще-то этот файл с HTML-структурой имеет расширение jsp, во всяком случае в адресной строке в конце стоит файл с таим расширением. Это важно? |
|||
|
||||
| Zabul |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 5.9.2008 Репутация: нет Всего: нет |
Поразмыслив и поэкспериментировав, пришел к такому выводу: всему виной этот самый jsp-модуль. Чтобы получить доступ к WSDL-файлам интересующего сайта, необходимо ввести логин и пароль (во всяком случае, появляется такая страница с запросом, если ввести строчку http://.....?WSDL в строке браузера). Пароль и логин мне известны, при их вводе вручную получаю доступ к сайту, правда, с парой дебильных сообщений от Apache Tomcat. Если же теперь ввожу http://.....?WSDL в браузере, передо мной наконец-то предстает WSDL во всей своей красе. Тогда другой вопрос: можно ли как-то подсунуть программно этому jsp логин и пароль? Не знаю, как сделать в Delphi, и даже такой серьезный продукт как XMLSpy от Altova не в состоянии туда пробиться. Есть ли способ это сделать?
|
|||
|
||||
| aktuba |
|
|||
![]() Смышленный ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1915 Регистрация: 24.4.2006 Где: Планета Земля Репутация: 9 Всего: 38 |
снифать траффик и смотреть ;)
-------------------- ![]() |
|||
|
||||
| Zabul |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 5.9.2008 Репутация: нет Всего: нет |
Не совсем понял, зачем снифать? Мне же известны входные данные, или я опять не в ту степь?
|
|||
|
||||
| aktuba |
|
|||
![]() Смышленный ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1915 Регистрация: 24.4.2006 Где: Планета Земля Репутация: 9 Всего: 38 |
Посмотри, как осуществляется авторизация...
-------------------- ![]() |
|||
|
||||
![]()
|
| Правила форума "Delphi: Сети" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делится вскрытыми компонентами
Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Сети | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |