Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2012.01.15;
Скачать: CL | DM;

Вниз

Работа с Вебсервисами с помощью 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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.007 c
2-1317892848
ford
2011-10-06 13:20
2012.01.15
findfirst не ищет в temp пользователя win7


2-1318095947
Pcrepair
2011-10-08 21:45
2012.01.15
Ctrl+A и Ctrl+C в компоненте TWebBrowser


15-1317153552
xayam
2011-09-27 23:59
2012.01.15
ExeClient = WebKit + HTML + CSS + JavaScript


15-1316688403
boriskb
2011-09-22 14:46
2012.01.15
Деньжат конечно маловато, но и работа не трудная


15-1316959585
Pit
2011-09-25 18:06
2012.01.15
Несколько вопросов по Android