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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ошибка при настройке HTTPRIO 
:(
    Опции темы
AlexLogos
Дата 20.6.2011, 17:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Народ, решил поработать з протоколом SOAP, нашел статейку в нете, почитал, создал указанный пример web-приложения, установил апач, повесил тестовый сайтик, забросил на него SOAP-приложение, протестировал браузером - вижу описание интерфейсов. Далее сделал клиента, тоже по примеру, начал тестить - появилась ошибка "XML document must have a top level element". Я так понимаю компонент HTTPRIO сам создает запрос, почему может возникнуть такая ошибка?


Это сообщение отредактировал(а) AlexLogos - 20.6.2011, 18:11
PM MAIL   Вверх
Snowy
Дата 20.6.2011, 20:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

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



Очевидно XML сформирован или передан неверно
PM MAIL   Вверх
AlexLogos
Дата 21.6.2011, 09:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Ну, я так и подумал, а как проверить?
PM MAIL   Вверх
Snowy
Дата 21.6.2011, 09:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

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



Сниффером или маппером посмотри что идёт по сети.
Попробуй посмотреть исходящие и входящие XML в браузере.
Без информации о том, что идёт по сети выводов не сделать.
PM MAIL   Вверх
AlexLogos
Дата 21.6.2011, 09:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Я посмотрел SOAPRequest, и вот что он передает.
Код

<?xml version="1.0"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" 
xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Body SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<NS1:Cm2Inch xmlns:NS1="urn:CentimeterInchIntf-ICmToInch"><Inch xsi:type="xsd:double">1</Inch></NS1:Cm2Inch>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>


Это сообщение отредактировал(а) AlexLogos - 21.6.2011, 09:39
PM MAIL   Вверх
Snowy
Дата 21.6.2011, 10:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

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



Здесь всё верно. Смотри, что принимает.
PM MAIL   Вверх
AlexLogos
Дата 21.6.2011, 17:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



а как посмотреть? (у меня свой апач стоит...)
PM MAIL   Вверх
Snowy
Дата 21.6.2011, 19:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

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



Берешь маппер
Одним концом настраиваешь его на аппач, а в порт маппера стучишься через soap.
И можешь читать весь траффик в обе стороны сколько угодно.
PM MAIL   Вверх
AlexLogos
Дата 24.6.2011, 12:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Как то я не понял  smile . SOAP же работает по 80-му порту и изменить вроде нельзя. Как настроить маппер, шде он должен лежать\запускаться?
PM MAIL   Вверх
Snowy
Дата 24.6.2011, 13:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

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



SOAP работает по любому порту.
Просто нужно указать ему адрес типа http://localhost:8080/srvs
где 8080 - порт, который слушает маппер.
Это ж обычный http. В урле можно и порт передать и логин с паролем.
PM MAIL   Вверх
AlexLogos
Дата 24.6.2011, 16:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Понял, спасибо!  smile 
Вот лог передачи:
То что послал клиент
Код

POST /cgi/cmtoinch.exe/soap/ICmToInch HTTP/1.1
SOAPAction: "urn:CentimeterInchIntf-ICmToInch#Cm2Inch"
Content-Type: text/xml; charset="utf-8"
User-Agent: Borland SOAP 1.2
Host: alexlogos.com:8080
Content-Length: 488
Connection: Keep-Alive
Cache-Control: no-cache

<?xml version="1.0"?>

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Body SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<NS1:Cm2Inch xmlns:NS1="urn:CentimeterInchIntf-ICmToInch">
<Inch xsi:type="xsd:double">12</Inch>
</NS1:Cm2Inch>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>


Что вернул сервис
Код

HTTP/1.1 200 OK
Date: Fri, 24 Jun 2011 13:26:44 GMT
Server: Apache/2.2.17 (Win32) PHP/5.2.1
Content-Version: MIME-Version: 1.0
Content: 
Content-Length: 721
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: multipart/related; boundary=MIME_boundaryB0R9532143182121; start="<http://www.borland.com/rootpart.xml>"

--MIME_boundaryB0R9532143182121
Content-Type: text/xml; charset="utf-8"
Content-ID: <http://www.borland.com/rootpart.xml>
Content-Location: http://www.borland.com/rootpart.xml
Content-Length: 479

<?xml version="1.0"?>

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Body>
<SOAP-ENV:Fault>
<faultactor/><faultcode>SOAP-ENV:Server</faultcode>
<faultstring>XML document must have a top level element.
Line: 0
</faultstring>
</SOAP-ENV:Fault>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
--MIME_boundaryB0R9532143182121--

Что не так?

Это сообщение отредактировал(а) AlexLogos - 24.6.2011, 16:34
PM MAIL   Вверх
Snowy
Дата 24.6.2011, 17:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

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



Ковыряй отладчиком серверную часть.
Отправляется всё верно, принимается корректный ответ.
Косяк где-то в сервисе. 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Сети"
Snowy
Poseidon
MetalFan

Запрещено:

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

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

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

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

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


 




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


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

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