Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2012.01.15;
Скачать: [xml.tar.bz2];

Вниз

Работа с Вебсервисами с помощью Delphi2009   Найти похожие ветки 

 
Phoenix ©   (2011-09-30 10:26) [0]

Доброго времени суток уважаемые. У меня возникла необходимость обратиться к вебсервису через делфи. Нашёл соответствующие примеры. Сгенерировал с File -> New -> Other.-> WebServices ->WSDL Importer соответствующий файл. Создал новую форму и теперь пытаюсь обратиться к необходимой функции у вебсервиса.
Для чего создал следующую процедуру

procedure TForm1.test1;
var i:Response;
   ii:RequestIin;
   fromTm: TXSDateTime;
   sTime: TSystemTime;
   nowTime: TDateTime;
   ff:UnstrictRequestsService;
begin
 ii.GUID:="string";
 GetSystemTime(sTime);
 nowTime := SystemTimeToDateTime(sTime);
 fromTm := TXSDateTime.Create;
 fromTm.AsDateTime := nowTime;
 ii.dateMessage:=fromTm;
 ii.senderCode:="GP";
 ii.iin:="840731350739";
 ff:=person1.GetUnstrictRequestsService(false,"http://...y/person",nil);
 i:=ff.findPersonByIin(ii).;
end;
Процедуру вызываю через нажатие кнопки. (всё это сделано для тестирования, никогда раньше не работал с вебсервисами и теперь пытаюсь найти подход) . В результате выходит ошибка "Conversion from class TButton to SOAP is not supported - SOAP classes must derive from TRemotable". Понять не могу отчего и почему и как её поправить. Прощу помочь разобраться с проблемой.


 
Плохиш ©   (2011-09-30 12:35) [1]

При импортировании wsdl можно поставить галочку для создания класса доступа к веб-сервису. Вот и используй созданный класс.


 
Phoenix ©   (2011-10-04 08:39) [2]

Снова поднимаю тему. Итак я накидал клиент и решил прошлую проблему. Обращаюсь к веб-сервису через сгенерированный метод и получаю следующий запрос:
<findPersonByIin xmlns="http://webservice.request.universal.interactive.nat">
 <requestIin>
    <GUID xmlns="">string</GUID>
    <dateMessage xmlns="">2011-09-30T11:07:55.734+06:00</dateMessage>
    <senderCode xmlns="">GP</senderCode>
    <iin xmlns="">840731350739</iin>
 </requestIin>
</findPersonByIin>

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

<web:findPersonByIin xmlns:web="http://webservice.request.universal.interactive.nat">
 <requestIin>
    <GUID>string</GUID>
    <dateMessage>2011-09-30T11:07:55.734+06:00</dateMessage>
    <senderCode>GP</senderCode>
    <iin>840731350739</iin>
 </requestIin>
</findPersonByIin>

Отсюда вопрос - учитывая что запрос генериться автоматически на основе сгенерированных классов, как привести его к правильному виду? Возможно при генерации надо указать некие параметры?
Заранее благодарен.


 
Cobalt ©   (2011-10-04 10:07) [3]

или они врут, или ошибаются.
невалидный xml-же
пущщай тебе скинут текст реального запроса, это раз.
и пущай они скажут тебе, как правильно генерить запрос.


 
имя   (2011-10-04 10:24) [4]

Удалено модератором


 
Phoenix ©   (2011-10-05 07:41) [5]

Нашёл такую же проблему как и у меня с соответсвующим решением http://stackoverflow.com/questions/4154585/removing-the-namespace-from-soap-request Но возник один вопрос - как по ссылке сказанно, переопределил метод ObjectToSOAP. Вроде как в теории при обращении к данному методу текст xml должен был обработатся и прийти в нужный мне вид. Теперь возник другой вопрос - как и когда вызывать этот самый метод? ТАм куча входящих параметров и где их брать - непонятно.



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2012.01.15;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.004 c
15-1316837540
SQLEX
2011-09-24 08:12
2012.01.15
идиотека..


2-1317911115
vegarulez
2011-10-06 18:25
2012.01.15
Звук при нажатии Enter


3-1269803253
Andrey2025
2010-03-28 23:07
2012.01.15
Вопрос по Firebird/ interbase Express


15-1316982602
Юрий
2011-09-26 00:30
2012.01.15
С днем рождения ! 26 сентября 2011 понедельник


2-1317818236
Alex_C
2011-10-05 16:37
2012.01.15
Копирование указателей





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский