Главная страница
    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.003 c
15-1317413710
TUser
2011-10-01 00:15
2012.01.15
Задача


2-1317892848
ford
2011-10-06 13:20
2012.01.15
findfirst не ищет в temp пользователя win7


15-1314770110
Омлет
2011-08-31 09:55
2012.01.15
RSS для DelphiMaster


15-1316896202
Юрий
2011-09-25 00:30
2012.01.15
С днем рождения ! 25 сентября 2011 воскресенье


15-1317041117
LDV
2011-09-26 16:45
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский