Форум программистов, компьютерный форум, киберфорум
Наши страницы

Delphi для начинающих

Войти
Регистрация
Восстановить пароль
 
melo111
0 / 0 / 0
Регистрация: 11.03.2016
Сообщений: 8
#1

Soap запрос - Delphi

23.03.2016, 19:37. Просмотров 702. Ответов 2
Метки нет (Все метки)

Добрый день, уважаемые гуру!
Есть билинговая система Lanbilling .
Пытаюсь запрос авторизации по soap

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
procedure TForm1.Button1Click(Sender: TObject);
var
  XMLString : AnsiString;
  lService  : AnsiString;
  ResponseStream: TMemoryStream;
  InputStringList : TStringList;
begin
  ResponseStream := TMemoryStream.Create;
  InputStringList := TStringList.Create;
 
  XMLString :=
          '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:api3"> ' +
'   <soapenv:Header/> '+
'   <soapenv:Body> ' +
'      <urn:Login> ' +
'         <login>login</login> ' +
'         <pass>passwd</pass> ' +
'      </urn:Login>  ' +
'   </soapenv:Body>  ' +
'</soapenv:Envelope> ' +
          '';
  lService := 'imessage_send';
  InputStringList.Add(XMLString);
 
  try
    IdHttp1.Request.Accept := '*/*';
    IdHttp1.Request.ContentType := 'text/XML';
    IdHTTP1.Post('http://192.168.10.2:34012', InputStringList, ResponseStream);
  finally
    ResponseStream.Free;
    InputStringList.Free;
  end;
при нажати кнопки получаю ошибку 500 internet server error

что делаю не так?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.03.2016, 19:37
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Soap запрос (Delphi):

Работа с SOAP сервисами - Delphi
Ситуация такова, пишу, точнее пытаюсь написать, трей агент для &quot;узнавания&quot; баланса счета абонента. Т.е. пога нужна интернет-провайдеру....

Soap запрос - Java EE
Здравствуйте! Нужно реализовать на Java soap запрос http://ws1.streamsms.ru/SmsService.php?WSDL http://ws1.streamsms.ru/GetSessionID ...

Запрос по SOAP - Программирование Android
Как взаимодействовать с Веб сервисами ../ws?wsdl Exlipce

HELP SOAP запрос - Web
Помогите построить запрос к Web-ceрвису. Есть описание WSDL: &lt;?xml version='1.0' encoding='utf-8' ?&gt; - &lt;definitions...

SOAP запрос на PHP - PHP
Как создать SOAP запрос, какие минимальные требования, т.е. какие данные нужны? Вот к примеру имеется такая XML &lt;soapenv:Envelope...

SOAP запрос на сервер - PHP
Привет! Есть сервер для теста платежной системы https://test.processing.kz/CNPMerchantWebServices/services/CNPMerchantWebService?wsdl...

2
melo111
0 / 0 / 0
Регистрация: 11.03.2016
Сообщений: 8
24.03.2016, 23:15  [ТС] #2
Нарыл в инете следующую статью http://www.delphimaster.net/view/6-1231408626
делаю как там .

получил wsdl

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
soapManager = class(TRemotable)
 
 
  
    property personid:           Int64   Index (IS_UNQL) read Fpersonid write Fpersonid;
    property isadmin:            Int64   Index (IS_OPTN or IS_UNQL) read Fisadmin write Setisadmin stored isadmin_Specified;
    property changepass:         Int64   Index (IS_OPTN or IS_UNQL) read Fchangepass write Setchangepass stored changepass_Specified;
    property archive:            Int64   Index (IS_OPTN or IS_UNQL) read Farchive write Setarchive stored archive_Specified;
    property actions:            Int64   Index (IS_OPTN or IS_UNQL) read Factions write Setactions stored actions_Specified;
    property accounts:           Int64   Index (IS_OPTN or IS_UNQL) read Faccounts write Setaccounts stored accounts_Specified;
    property agents:             Int64   Index (IS_OPTN or IS_UNQL) read Fagents write Setagents stored agents_Specified;
    property agrmgroups:         Int64   Index (IS_OPTN or IS_UNQL) read Fagrmgroups write Setagrmgroups stored agrmgroups_Specified;
    property broadcast:          Int64   Index (IS_OPTN or IS_UNQL) read Fbroadcast write Setbroadcast stored broadcast_Specified;
    property calendar:           Int64   Index (IS_OPTN or IS_UNQL) read Fcalendar write Setcalendar stored calendar_Specified;
    property cards:              Int64   Index (IS_OPTN or IS_UNQL) read Fcards write Setcards stored cards_Specified;
    property cardsets:           Int64   Index (IS_OPTN or IS_UNQL) read Fcardsets write Setcardsets stored cardsets_Specified;
    property cashonhand:         Int64   Index (IS_OPTN or IS_UNQL) read Fcashonhand write Setcashonhand stored cashonhand_Specified;
    property catalog:            Int64   Index (IS_OPTN or IS_UNQL) read Fcatalog write Setcatalog stored catalog_Specified;
    property currency:           Int64   Index (IS_OPTN or IS_UNQL) read Fcurrency write Setcurrency stored currency_Specified;
    property discount:           Int64   Index (IS_OPTN or IS_UNQL) read Fdiscount write Setdiscount stored discount_Specified;
    property helpdesk:           Int64   Index (IS_OPTN or IS_UNQL) read Fhelpdesk write Sethelpdesk stored helpdesk_Specified;
    property ipstat:             Int64   Index (IS_OPTN or IS_UNQL) read Fipstat write Setipstat stored ipstat_Specified;
    property logs:               Int64   Index (IS_OPTN or IS_UNQL) read Flogs write Setlogs stored logs_Specified;
    property managers:           Int64   Index (IS_OPTN or IS_UNQL) read Fmanagers write Setmanagers stored managers_Specified;
    property operators:          Int64   Index (IS_OPTN or IS_UNQL) read Foperators write Setoperators stored operators_Specified;
    property optionscommon:      Int64   Index (IS_OPTN or IS_UNQL) read Foptionscommon write Setoptionscommon stored optionscommon_Specified;
    property orders:             Int64   Index (IS_OPTN or IS_UNQL) read Forders write Setorders stored orders_Specified;
    property paydocs:            Int64   Index (IS_OPTN or IS_UNQL) read Fpaydocs write Setpaydocs stored paydocs_Specified;
    property payments:           Int64   Index (IS_OPTN or IS_UNQL) read Fpayments write Setpayments stored payments_Specified;
    property radattr:            Int64   Index (IS_OPTN or IS_UNQL) read Fradattr write Setradattr stored radattr_Specified;
    property recount:            Int64   Index (IS_OPTN or IS_UNQL) read Frecount write Setrecount stored recount_Specified;
    property reports:            Int64   Index (IS_OPTN or IS_UNQL) read Freports write Setreports stored reports_Specified;
    property services:           Int64   Index (IS_OPTN or IS_UNQL) read Fservices write Setservices stored services_Specified;
    property tarifs:             Int64   Index (IS_OPTN or IS_UNQL) read Ftarifs write Settarifs stored tarifs_Specified;
    property timestat:           Int64   Index (IS_OPTN or IS_UNQL) read Ftimestat write Settimestat stored timestat_Specified;
    property unions:             Int64   Index (IS_OPTN or IS_UNQL) read Funions write Setunions stored unions_Specified;
    property usboxstat:          Int64   Index (IS_OPTN or IS_UNQL) read Fusboxstat write Setusboxstat stored usboxstat_Specified;
    property users:              Int64   Index (IS_OPTN or IS_UNQL) read Fusers write Setusers stored users_Specified;
    property usersdocallow:      Int64   Index (IS_OPTN or IS_UNQL) read Fusersdocallow write Setusersdocallow stored usersdocallow_Specified;
    property userspreorders:     Int64   Index (IS_OPTN or IS_UNQL) read Fuserspreorders write Setuserspreorders stored userspreorders_Specified;
    property usergroups:         Int64   Index (IS_OPTN or IS_UNQL) read Fusergroups write Setusergroups stored usergroups_Specified;
    property hdsettings:         Int64   Index (IS_OPTN or IS_UNQL) read Fhdsettings write Sethdsettings stored hdsettings_Specified;
    property invdevices:         Int64   Index (IS_OPTN or IS_UNQL) read Finvdevices write Setinvdevices stored invdevices_Specified;
    property openpass:           Int64   Index (IS_OPTN or IS_UNQL) read Fopenpass write Setopenpass stored openpass_Specified;
    property optionsrequisite:   Int64   Index (IS_OPTN or IS_UNQL) read Foptionsrequisite write Setoptionsrequisite stored optionsrequisite_Specified;
    property optionsdocuments:   Int64   Index (IS_OPTN or IS_UNQL) read Foptionsdocuments write Setoptionsdocuments stored optionsdocuments_Specified;
    property optionshosts:       Int64   Index (IS_OPTN or IS_UNQL) read Foptionshosts write Setoptionshosts stored optionshosts_Specified;
    property optionsfunctions:   Int64   Index (IS_OPTN or IS_UNQL) read Foptionsfunctions write Setoptionsfunctions stored optionsfunctions_Specified;
    property applications:       Int64   Index (IS_OPTN or IS_UNQL) read Fapplications write Setapplications stored applications_Specified;
    property useadvance:         Int64   Index (IS_OPTN or IS_UNQL) read Fuseadvance write Setuseadvance stored useadvance_Specified;
    property authlogs:           Int64   Index (IS_OPTN or IS_UNQL) read Fauthlogs write Setauthlogs stored authlogs_Specified;
    property bso:                Int64   Index (IS_OPTN or IS_UNQL) read Fbso write Setbso stored bso_Specified;
    property postmans:           Int64   Index (IS_OPTN or IS_UNQL) read Fpostmans write Setpostmans stored postmans_Specified;
    property registry:           Int64   Index (IS_OPTN or IS_UNQL) read Fregistry write Setregistry stored registry_Specified;
    property packages:           Int64   Index (IS_OPTN or IS_UNQL) read Fpackages write Setpackages stored packages_Specified;
    property clientequipment:    Int64   Index (IS_OPTN or IS_UNQL) read Fclientequipment write Setclientequipment stored clientequipment_Specified;
    property istemplate:         Int64   Index (IS_OPTN or IS_UNQL) read Fistemplate write Setistemplate stored istemplate_Specified;
    property parenttemplate:     Int64   Index (IS_OPTN or IS_UNQL) read Fparenttemplate write Setparenttemplate stored parenttemplate_Specified;
    property saledictionary:     Int64   Index (IS_OPTN or IS_UNQL) read Fsaledictionary write Setsaledictionary stored saledictionary_Specified;
    property kladr:              Int64   Index (IS_OPTN or IS_UNQL) read Fkladr write Setkladr stored kladr_Specified;
    property payclassid:         Int64   Index (IS_OPTN or IS_UNQL) read Fpayclassid write Setpayclassid stored payclassid_Specified;
    property login:              string  Index (IS_UNQL) read Flogin write Flogin;
    property pass:               string  Index (IS_OPTN or IS_UNQL) read Fpass write Setpass stored pass_Specified;
    property fio:                string  Index (IS_OPTN or IS_UNQL) read Ffio write Setfio stored fio_Specified;
    property email:              string  Index (IS_OPTN or IS_UNQL) read Femail write Setemail stored email_Specified;
    property descr:              string  Index (IS_OPTN or IS_UNQL) read Fdescr write Setdescr stored descr_Specified;
    property office:             string  Index (IS_OPTN or IS_UNQL) read Foffice write Setoffice stored office_Specified;
    property externalid:         string  Index (IS_OPTN or IS_UNQL) read Fexternalid write Setexternalid stored externalid_Specified;
    property cashregisterfolder: string  Index (IS_OPTN or IS_UNQL) read Fcashregisterfolder write Setcashregisterfolder stored cashregisterfolder_Specified;
  end;
 
 
 
procedure TForm1.Button1Click(Sender: TObject);
 var hdr: soapManager;
 pvbkiService: api3PortType;
begin
hdr:= soapManager.Create;
hdr.login:= form1.Edit1.Text;
hdr.pass:= form1.Edit2.Text;
try
  form1.HTTPRIO1.WSDLLocation:= 'C:\aaaaa\billing\api3.wsdl';
  form1.HTTPRIO1.Service:= "api3PortType";
  form1.HTTPRIO1.Port:= "Service";
  form1.HTTPRIO1.SOAPHeaders.Send(hdr); ругается
  Label1.Caption:=(form1.HTTPRIO1 as api3PortType)  что должно быть тут не понял
 
  finally
   hdr.Free;
 
 
 
end;
0
melo111
0 / 0 / 0
Регистрация: 11.03.2016
Сообщений: 8
26.03.2016, 17:44  [ТС] #3
Сделал анализ с помощью HTTPAnalzer

Посылаю запрос с SoapUI проходит ОК.
в анализаторе
POST / HTTP/1.1
Accept-Encoding: gzip,deflate
Content-Type: text/xml;charset=UTF-8
SOAPAction: ""
Host: 1.1.1.1:34012
Connection: Keep-Alive
User-Agent: Apache-HttpClient/4.1.1 (java 1.5)
Content-Length: 296
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:api3">
<soapenv:Header/>
<soapenv:Body>
<urn:Login>
<login>blabla</login>
<pass>blabla</pass>
</urn:Login>
</soapenv:Body>
</soapenv:Envelope>



мой код:

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
procedure TForm2.Button2Click(Sender: TObject);
 
var ResponseOut: TStringStream;
     httpRequest:TStrings;
begin
 ResponseOut := TStringStream.Create('');
 httpRequest := TStringList.Create;
 
 //httpRequest.Text:=
   httpRequest.Text:='<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:api3">'+
                    '<soapenv:Header/>'+
                    '<soapenv:Body>'+
                    '<urn:Login>'+
                    '<login>blabla</login>'+
                   '<pass>blabla</pass>'+
                    ' </urn:Login>'+
                    '  </soapenv:Body>'+
                    '</soapenv:Envelope>';
 
 
 with IdHTTP1 do
 begin
  Request.ContentLength:=length(httpRequest.Text);
  Request.ContentType:='text/xml; charset=utf-8';
  IdHTTP1.Post('http://1.1.1.1:34012',httpRequest,ResponseOut);
  IdHTTP1.Request.Connection := 'keep-alive';
    form2.IdHTTP1.ProtocolVersion := pv1_1;
      form2.IdHTTP1.Request.CustomHeaders.Clear;
   form2.IdHTTP1.Request.CustomHeaders.Add('SOAPAction: ""');
   form2.IdHTTP1.Request.AcceptEncoding:='gzip,deflate';
 end;
 
 
 
end;
в анализаторе

POST / HTTP/1.0
Connection: keep-alive
Content-Type: text/xml; charset=utf-8
Host: 1.1.1.1:34012
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Encoding: identity
User-Agent: Apache-HttpClient/4.1.1 (java 1.5)
Content-Length: 342
Код
%3Csoapenv%3AEnvelope+xmlns%3Asoapenv=%22http%3A%2F%2Fschemas.xmlsoap.org%2Fsoap%2Fenvelope%2F%22+xmlns%3Aurn%3D%22urn%3Aapi3%22%3E%3Csoapenv%3AHeader%2F%3E%3Csoapenv%3ABody%3E%3Curn%3ALogin%3E%3Clogin%3Eblabla%3C%2Flogin%3E%3Cpass%3Eblabla%3C%2Fpass%3E+%3C%2Furn%3ALogin%3E++%3C%2Fsoapenv%3ABody%3E%3C%2Fsoapenv%3AEnvelope%3E
почему такой запрос получается?

Добавлено через 21 минуту
Разобрался
TIdHTTP= HTTPOptions = []

Добавлено через 17 часов 46 минут
Получаю. от сервера ответ:
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:lbapi="urn:api3">
   <SOAP-ENV:Header/>
   <SOAP-ENV:Body>
      <lbapi:LoginResponse>
         <ret>
            <manager>
               <personid>61</personid>
               <isadmin>0</isadmin>
               <changepass>0</changepass>
               <archive>0</archive>
               <actions>2</actions>
               <accounts>2</accounts>
               <agents>2</agents>
               <agrmgroups>2</agrmgroups>
               <broadcast>2</broadcast>
               <calendar>2</calendar>
               <cards>2</cards>
               <cardsets>2</cardsets>
               <cashonhand>2</cashonhand>
               <catalog>2</catalog>
               <currency>2</currency>
               <discount>2</discount>
               <helpdesk>2</helpdesk>
               <ipstat>2</ipstat>
               <logs>2</logs>
               <managers>2</managers>
               <operators>2</operators>
               <optionscommon>2</optionscommon>
               <orders>2</orders>
               <paydocs>2</paydocs>
               <payments>0</payments>
               <radattr>2</radattr>
               <recount>2</recount>
               <reports>2</reports>
               <services>2</services>
               <tarifs>2</tarifs>
               <timestat>2</timestat>
               <unions>2</unions>
               <usboxstat>2</usboxstat>
               <users>2</users>
               <usersdocallow>0</usersdocallow>
               <userspreorders>2</userspreorders>
               <usergroups>2</usergroups>
               <hdsettings>2</hdsettings>
               <invdevices>2</invdevices>
               <openpass>1</openpass>
               <optionsrequisite>2</optionsrequisite>
               <optionsdocuments>2</optionsdocuments>
               <optionshosts>2</optionshosts>
               <optionsfunctions>2</optionsfunctions>
               <applications>2</applications>
               <useadvance>0</useadvance>
               <authlogs>2</authlogs>
               <bso>2</bso>
               <postmans>2</postmans>
               <registry>2</registry>
               <packages>2</packages>
               <clientequipment>2</clientequipment>
               <istemplate>0</istemplate>
               <parenttemplate>0</parenttemplate>
               <saledictionary>2</saledictionary>
               <kladr>2</kladr>
               <payclassid>0</payclassid>
               <login>blabla</login>
               <pass>*D770F1ACE465789D273CF8F4037021321565</pass>
               <fio>Иванов иван иванович</fio>
               <email>mk@mk.ru</email>
               <descr/>
               <office/>
               <externalid/>
               <cashregisterfolder/>
            </manager>
         </ret>
      </lbapi:LoginResponse>
   </SOAP-ENV:Body>
</SOAP-ENV:Envelope>
как отфильтровать его.

например значение <fio>Иванов иван иванович</fio> чтоб выводилось в label ?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.03.2016, 17:44
Привет! Вот еще темы с ответами:

Soap запрос и CLR сборка - C# WCF
Добрый день! Столкнулась с очень специфической проблемой: в sql запросе формируется сообщение для отправки в soap-запросе. В запросе...

Не транслируются значения в SOAP запрос - Java SE
Здравствуйте. У меня есть пример SOAP запроса &lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; ?&gt; &lt;SOAP:Envelope...

Эмулировать XML SOAP запрос - PHP
Здравствуйте! Поставили задачу: Имея WSDL файл, запрос к нему и ответ, сохраняя формат отправляемых и получаемых данных, эмулировать...

Как отправить SOAP запрос - Python
Как отправить с помощью питона SOAP запрос? (ниже показано, что конкретно надо отправить) Читал и пробовал библиотеки SUDS и SOAPpy, но...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru