powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / idHTTP ошибка авторизации при коннекте к SOAP-серверу
18 сообщений из 18, страница 1 из 1
idHTTP ошибка авторизации при коннекте к SOAP-серверу
    #39669118
bamxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!
После того как не получилось побороться с префиксами NS1 (вопрос http://www.sql.ru/forum/1297187/wsdl-rio-levye-prefiksy-ns1)
пытаюсь напрямую послать запрос на soap-сервер (извиняюсь, если терминология страдает)
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
		MultiPartFormDataStream := TidMultiPartFormDataStream.Create;
		MultiPartFormDataStream.Create;
		MultiPartFormDataStream.AddFile('xml_file', 'запрос1.xml', 'application/octet-stream');
		IdHTTP_ssl.Disconnect;
		IdHTTP_ssl.Request.Username := 'optservice-1';
		IdHTTP_ssl.Request.Password := 'hB9h4S';
		try
			S := dm0.IdHTTP_SSL.Post(sIP, MultiPartFormDataStream);
		except ...


sIP = 'https://api2.vetrf.ru:8002/platform/services/2.0/ApplicationManagementService'
В except пишет Error 401--Unauthorized
Подскажите, люди добрые, что надо еще указать ?
...
Рейтинг: 0 / 0
idHTTP ошибка авторизации при коннекте к SOAP-серверу
    #39669147
bamxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А, что есть здесь люди, занимавшиеся ЕГАИС-ом?
А, если такие есть, то процентов на 70 они должны были заниматься ветеринарной службой!
Может не на том форуме задаю свои дебильные вопросы?
Может кто подскажет другой форум.

не предлагать http://vetrf.ru/vetrf-forum/posts/list/150/7152.page
...
Рейтинг: 0 / 0
idHTTP ошибка авторизации при коннекте к SOAP-серверу
    #39669164
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bamxx,

Может, сертификат нужно установить куда-то. Или еще что связанное с ssl. Как это все делается в инди - не знаю и знать не хочу.

Был в твоей ситуации. Дельфевые обертки для soap не подошли, стал отправлять/получать xml и разбирать его.

Совет. В дельфевом soap 2 варианта транспортного уровня, к щастью. WinInet и Indy, который включается дефайном USE_INDY, если не ошибаюсь.
Специально сделали, чтобы когда инди заглючит, можно было быстро отключить.
Так вот, возьми оттуда за основу передачу по WinInet. Ему всё равно - http или https, работать будет всегда и везде (на более менее современных осях), ничего настраивать не надо. Разве что, возможно, придется установить в систему сертификат, если сервер не отдает его автоматически.
Там кода на пару страниц.
Как минимум, нормальный текст ошибки увидеть сможешь.

*так было до D7, что щас с soap в дельфи - не знаю.
...
Рейтинг: 0 / 0
idHTTP ошибка авторизации при коннекте к SOAP-серверу
    #39669170
bamxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
YuRock,
Я во всем этом совершенно не шарю
Но клиент ЕГАИСа работает на idHTTP
Не знаю принято это здесь, назначаю премию 3000 руб. (цена договорная)
Как приконнектиться к этому серваку через idHTTP, заслать запрос, получить ответ
delphi7
...
Рейтинг: 0 / 0
idHTTP ошибка авторизации при коннекте к SOAP-серверу
    #39669171
bamxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
сам файл
...
Рейтинг: 0 / 0
idHTTP ошибка авторизации при коннекте к SOAP-серверу
    #39669178
bamxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
YuRockБыл в твоей ситуации. Дельфевые обертки для soap не подошли, стал отправлять/получать xml и разбирать его

Слава богу, хоть один человек меня понимает!
...
Рейтинг: 0 / 0
idHTTP ошибка авторизации при коннекте к SOAP-серверу
    #39669182
bamxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
YuRockМожет, сертификат нужно установить куда-то. Или еще что связанное с ssl. Как это все делается в инди - не знаю и знать не хочу.
блин, не написал, что сертификат добавлен
idHTTP1.IOHandler := IdSSLIOHandlerSocket1;
...
Рейтинг: 0 / 0
idHTTP ошибка авторизации при коннекте к SOAP-серверу
    #39669187
Kazantsev Alexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bamxxНе знаю принято это здесь, назначаю премию 3000 руб. (цена договорная)
Как приконнектиться к этому серваку через idHTTP, заслать запрос, получить ответ
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
procedure TForm1.btn1Click(Sender: TObject);
var S: string;
  request : TStream;
begin
    request := TFileStream.Create('запрос1.xml', fmOpenRead);

    IdHttp_SSL.Request.BasicAuthentication := True;
    IdHTTP_SSL.Request.Username := 'optservice-180516';
    IdHTTP_SSL.Request.Password := 'hB9h4SeB';
    IdHTTP_SSL.Request.ContentType := 'text/xml';
    try
     s := IdHTTP_SSL.Post('https://api2.vetrf.ru:8002/platform/services/2.0/ApplicationManagementService', request);
    except
     on E: EIdHTTPProtocolException do
      lbl1.Caption := E.ErrorMessage;
    end;

  ShowMessage(s);

end;
...
Рейтинг: 0 / 0
idHTTP ошибка авторизации при коннекте к SOAP-серверу
    #39669188
bamxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
YuRockКак минимум, нормальный текст ошибки увидеть сможешь.
до ошибок я еще не дошел, даже приконектиться не могу
ошибка возникает при попытке конекта к серверу командой Post Error 401--Unauthorized
у меня есть готовый запрос, правильный, который надо запихать этому серверу
...
Рейтинг: 0 / 0
idHTTP ошибка авторизации при коннекте к SOAP-серверу
    #39669189
sql2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
idHTTP ошибка авторизации при коннекте к SOAP-серверу
    #39669191
bamxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Kazantsev Alexey,
спасибо,
можешь пояснить в чем разница?
на почту скинь, пож-ста, номер карты
...
Рейтинг: 0 / 0
idHTTP ошибка авторизации при коннекте к SOAP-серверу
    #39669192
bamxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вопрос закрыт
...
Рейтинг: 0 / 0
idHTTP ошибка авторизации при коннекте к SOAP-серверу
    #39669193
sql2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bamxxвопрос закрыт

круто, а я проект хотел прицепить

и объяснить, что body нужно передавать, а не multipart...
...
Рейтинг: 0 / 0
idHTTP ошибка авторизации при коннекте к SOAP-серверу
    #39669195
bamxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sql2012,
так я бы с удовольствием бы понял эту разницу (если мозгов хватит)
...
Рейтинг: 0 / 0
idHTTP ошибка авторизации при коннекте к SOAP-серверу
    #39669196
sql2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bamxxsql2012,
так я бы с удовольствием бы понял эту разницу (если мозгов хватит)


При отправке MultiPartFormDataStream - получаем внутри тела запроса не только сам файл, но и его имя\разделитель и т.п. (параметры)
Подробнее здесь , например.


А отправлять нужно SOAP-запрос, Post (url, xml запрос из файла).

Получается вот так вместе с заголовками:

авторPOST /platform/services/2.0/ApplicationManagementService HTTP/1.0
Content-Type: text/html
Host: api2.vetrf.ru:8002
Accept: text/html, */*
User-Agent: Mozilla/3.0 (compatible; Indy Library)
Authorization: Basic b3B0c2VydmljZS0xODA1MTY6aEI5aDRTZUI=
Content-Length: 1523

<?xml version="1.0"?>
<SOAP-ENV:Envelope .... ..... ...</SOAP-ENV:Envelope>


Сравнить по ссылке из вики.
...
Рейтинг: 0 / 0
idHTTP ошибка авторизации при коннекте к SOAP-серверу
    #39669198
sql2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bamxxsql2012,
так я бы с удовольствием бы понял эту разницу (если мозгов хватит)


С MultiPartFormData генерируется вот такой запрос:
авторPOST /platform/services/2.0/ApplicationManagementService HTTP/1.0
Content-Type: multipart/form-data; boundary=--------070418041135276
Host: api2.vetrf.ru:8002
Accept: text/html, */*
User-Agent: Mozilla/3.0 (compatible; Indy Library)
Authorization: Basic b3B0c2VydmljZS0xODA1MTY6aEI5aDRTZUI=
Content-Length: 1698

----------070418041135276
Content-Disposition: form-data; name="xml_file"; filename="запрос1.xml"
Content-Type: application/octet-stream

<?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"><SOAP-ENV:Body xmlns:NS1=" http://api.vetrf.ru/schema/cdm/mercury/vet-document/v2"><submitApplicationRequest xmlns=" http://api.vetrf.ru/schema/cdm/application/ws-definitions"><apiKey>NzRmMmNlNDktNjM4Yi00NDcxLWE5NzAtZjM5OTNlNzU3ZDdhZGEyNWMzOTYtNGQwZC00NGEwLTgyNzgtMTM4ZmZjMzgyMjhh</apiKey><application xmlns=" http://api.vetrf.ru/schema/cdm/application"><serviceId>mercury-g2b.service:2.0</serviceId><issuerId>da25c396-4d0d-44a0-8278-138ffc38228a</issuerId><issueDate>2018-07-03T19:02:36.953 05:00</issueDate><data><getVetDocumentListRequest xmlns=" http://api.vetrf.ru/schema/cdm/mercury/g2b/applications/v2"><localTransactionId>T20180703190236</localTransactionId><initiator xsi:type="NS1:user"><login xmlns=" http://api.vetrf.ru/schema/cdm/mercury/vet-document/v2">optservice-180516</login></initiator><listOptions xmlns=" http://api.vetrf.ru/schema/cdm/base"><count>500</count><offset>0</offset></listOptions><vetDocumentType xmlns=" http://api.vetrf.ru/schema/cdm/mercury/vet-document/v2">INCOMING</vetDocumentType><vetDocumentStatus xmlns=" http://api.vetrf.ru/schema/cdm/mercury/vet-document/v2">UTILIZED</vetDocumentStatus><enterpriseGuid xmlns=" http://api.vetrf.ru/schema/cdm/dictionary/v2"></enterpriseGuid></getVetDocumentListRequest></data></application></submitApplicationRequest></SOAP-ENV:Body></SOAP-ENV:Envelope>


----------070418041135276--


и приходит ответ:

авторHTTP/1.1 500 Internal Server Error
Server: nginx/1.13.7
Date: Wed, 04 Jul 2018 00:11:36 GMT
Content-Type: text/xml; charset=utf-8
Connection: close
X-Powered-By: Servlet/2.5 JSP/2.1
Content-Length: 780

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv=" http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Body><soapenv:Fault><faultcode>soapenv:Server</faultcode><faultstring>BEA-382513: OSB Replace action failed updating variable "body": Error parsing XML: {err}FORG0005: expected exactly one item, got 0 items</faultstring><detail><con:fault xmlns:con=" http://www.bea.com/wli/sb/context"><con:errorCode>BEA-382513</con:errorCode><con:reason>OSB Replace action failed updating variable "body": Error parsing XML: {err}FORG0005: expected exactly one item, got 0 items</con:reason><con:location><con:path>response-pipeline</con:path><con:error-handler>true</con:error-handler></con:location></con:fault></detail></soapenv:Fault></soapenv:Body></soapenv:Envelope>
...
Рейтинг: 0 / 0
idHTTP ошибка авторизации при коннекте к SOAP-серверу
    #39669199
Kazantsev Alexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bamxxможешь пояснить в чем разница?
1. Задействование базовой идентификации (именно из-за её отсутвия ты получал 401)
2. Тело запроса отдаётся как есть, а не кодируется особым образом для передачи частями, как при использовании мультипарт .
...
Рейтинг: 0 / 0
idHTTP ошибка авторизации при коннекте к SOAP-серверу
    #39669200
Kazantsev Alexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bamxxНе знаю принято это здесь, назначаю премию 3000 руб. (цена договорная)
Деньги получены.
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / idHTTP ошибка авторизации при коннекте к SOAP-серверу
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]