Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
 Аватар для Dinkin
783 / 556 / 136
Регистрация: 31.05.2013
Сообщений: 3,145
Записей в блоге: 3

SOAP послать запрос

12.10.2023, 15:46. Показов 2421. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго!
Что то вообще нет документации как работать с запросами SOAP под билдер (да как бы и под Delphi их чуточку).

Как я могу отправить запрос и получить запрос ?Так как там нет всяких Get и Post....

C++
1
2
3
    HTTPRIO1->HTTPWebNode->URL       = "http:...............wsdl";
    HTTPRIO1->HTTPWebNode->UserName  = "pupkin";
    HTTPRIO1->HTTPWebNode->Password  = "123456789";
А дальше то как?)
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
12.10.2023, 15:46
Ответы с готовыми решениями:

User-Agent, Как перехвать запрос CppWebBrowser и послать со своим конфигом???
Все мы знаем, что когда браузер посылает запрос, то он + посылает инфу о типе браузера + еще там тра - ля - ля. Вот только как сделать,...

Как послать запрос и прочитать по HTTP
Хочу разобраться в этой теме и нужен пример работающий в GCC. Спасибо.

Как через Curl послать нестандартный запрос c нестандартными параметрами? Например, PROPFIND /docs/ HTTP/1.1
Доброго дня всем посетившим! Такая проблема. Я могу создать свой метод для отправки запроса (с помощью curl_easy_setopt(curl,...

16
 Аватар для DPS
43 / 41 / 20
Регистрация: 12.11.2011
Сообщений: 188
16.10.2023, 15:56
Dinkin, добрый. Делал я такое в Берлине по-моему. А документации нет у вас никакой/примеров работы?
Первоначально мне дали .wsdl файл. Потом через wsdl-импортер я подкинул его. Насколько помню, по итогу создалось два файла .h и .cpp
Далее я подключал их к проекту, после чего обнаружился глюк вот такой,-функции httprio видел (работало автозавершение кода при вводе ->),
но они не работали) Через отладчик выяснилось, что после HTTPRIOBeforeExecute тело запроса чистилось (вот такой вот глюк). Решилось переопределением методов.
Может, в более поздних версиях работу rio поправили...
1
 Аватар для Dinkin
783 / 556 / 136
Регистрация: 31.05.2013
Сообщений: 3,145
Записей в блоге: 3
17.10.2023, 10:28  [ТС]
DPS, Да как бы нет документации. Есть совсем горсточку примеров на делфи в интернете, но того прям недостаточно).
Зато море примеров для php, питон и тд))
0
 Аватар для DPS
43 / 41 / 20
Регистрация: 12.11.2011
Сообщений: 188
17.10.2023, 10:51
Цитата Сообщение от Dinkin Посмотреть сообщение
DPS, Да как бы нет документации. Есть совсем горсточку примеров на делфи в интернете, но того прям недостаточно).
Зато море примеров для php, питон и тд))
Так, ну а что у вас есть на данный момент? .wsdl файл? Можно посмотреть? Надо попробовать импортировать его
0
 Аватар для Dinkin
783 / 556 / 136
Регистрация: 31.05.2013
Сообщений: 3,145
Записей в блоге: 3
17.10.2023, 10:58  [ТС]
У меня задача брать данные через api 1с (JSON формата), а там SOAP.
Для данной операции не нужен .wsdl Вроде как. Из палитры компонентов, только RIO ...вроде ка кто еще через indy можно, но там + заморочки настроеек
0
 Аватар для DPS
43 / 41 / 20
Регистрация: 12.11.2011
Сообщений: 188
17.10.2023, 11:11
Цитата Сообщение от Dinkin Посмотреть сообщение
У меня задача брать данные через api 1с (JSON формата), а там SOAP.
Для данной операции не нужен .wsdl Вроде как. Из палитры компонентов, только RIO ...вроде ка кто еще через indy можно, но там + заморочки настроеек
Я просто не могу понять, как вы собираетесь смотреть доступные метода сервиса. Первоначально можно тупо взять soapui(инструмент для тестирования) и туда подгрузить файл с описанием .wsdl. Там будут видны все доступные методы, там же можно протестировать запросы/посмотреть ответы сервиса
А по какому адресу тогда на сервер вы собираетесь коннектиться???
0
 Аватар для Dinkin
783 / 556 / 136
Регистрация: 31.05.2013
Сообщений: 3,145
Записей в блоге: 3
17.10.2023, 11:26  [ТС]
Адрес у меня есть (в первом сообщении написал как конектится собираюсь), так же у меня есть список методов что .wsdl на сервере и параметры для передачи к ним, но на выходе у меня всегда огромный JSON
0
 Аватар для DPS
43 / 41 / 20
Регистрация: 12.11.2011
Сообщений: 188
17.10.2023, 11:29
адрес сервера есть у вас? я так понимаю, там в конце будет что-то такое - адрес сервера + "?wsdl"

Добавлено через 1 минуту
вот, супер. Теперь скачайте soap ui и подгрузите туда этот адрес с авторизацией. там будут все методы. там сможете их пощупать и посмотреть запросы/ответы
потом уже пытаться на билдер перекладывать) я попозже файлы у себя поищу, пришлю Вам если найду
0
 Аватар для Dinkin
783 / 556 / 136
Регистрация: 31.05.2013
Сообщений: 3,145
Записей в блоге: 3
17.10.2023, 11:33  [ТС]
Цитата Сообщение от DPS Посмотреть сообщение
там в конце будет что-то такое - адрес сервера + "?wsdl"
Все верно

Но это отдельное приложение, я не уверен что просмотр там информации поможет мне в своем приложении получать данные.
0
 Аватар для DPS
43 / 41 / 20
Регистрация: 12.11.2011
Сообщений: 188
17.10.2023, 11:44
Так, а в билдер попробуйте через wsdl importer загрузить.Там при импорте адрес указывается и данные подключения. Далее должны сгенерироваться .h и .cpp (у меня так было насколько помню). Получится что-то на выходе?
0
 Аватар для Dinkin
783 / 556 / 136
Регистрация: 31.05.2013
Сообщений: 3,145
Записей в блоге: 3
17.10.2023, 12:29  [ТС]
DPS, С этим все получилось. скомпилировалось, а как тебе сделать запрос?

Добавлено через 8 минут
Дале я смотрю все ли норм так
C++
1
2
3
4
5
6
7
8
9
    _di_WebService1Soap ws = GetWebService1Soap(false, "http:........?wsdl", HTTPRIO1);
    if(!ws)
        {
            ShowMessage(" Не норм");
        }
        else
            {
                ShowMessage("Норм");
            }
И у меня возвращает "норм", а как послать уже конкретный запрос?
0
 Аватар для DPS
43 / 41 / 20
Регистрация: 12.11.2011
Сообщений: 188
17.10.2023, 13:02
Цитата Сообщение от Dinkin Посмотреть сообщение
DPS, С этим все получилось. скомпилировалось, а как тебе сделать запрос?

Добавлено через 8 минут
Дале я смотрю все ли норм так
C++
1
2
3
4
5
6
7
8
9
    _di_WebService1Soap ws = GetWebService1Soap(false, "http:........?wsdl", HTTPRIO1);
    if(!ws)
        {
            ShowMessage(" Не норм");
        }
        else
            {
                ShowMessage("Норм");
            }
И у меня возвращает "норм", а как послать уже конкретный запрос?

C++
1
ws->Название метода
Добавлено через 21 секунду
Выдает список доступных методов?
Если выдает что-то, пойдем дальше))) Там глюк был с параметрами
0
 Аватар для Dinkin
783 / 556 / 136
Регистрация: 31.05.2013
Сообщений: 3,145
Записей в блоге: 3
17.10.2023, 13:49  [ТС]
Методов нет) и их чет в самом файле .wsdl нет. Я как понял по небольшим примерам делфи что методы представлены как абстрактный класс и их надо соответственно вызывать как текст?)
0
 Аватар для DPS
43 / 41 / 20
Регистрация: 12.11.2011
Сообщений: 188
17.10.2023, 14:13
Лучший ответ Сообщение было отмечено Dinkin как решение

Решение

Ну как это... У Вас сформировались файлы .h и .cpp? В них что-то есть? Вы подключили их в проект? У HttpRio заполнены авторизации? у меня rio в потоке создавался.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
    
    #include "aeosws.cpp"    //сформированный после импорта файл
 
    THTTPRIO *httprio_        = new THTTPRIO(NULL);  
 
    httprio_->OnBeforeExecute   = HTTPRIOBeforeExecute;
    httprio_->OnAfterExecute    = HTTPRIOAfterExecute;
 
    httprio_->HTTPWebNode->UserName = "administrator";
    httprio_->HTTPWebNode->Password = "password";
 
    _di_AeosWebServiceType nedap_soap_ =   GetAeosWebServiceType(false,       //название интерфейса посмотрел в исходниках сформированных  файлах
                    "https://192.168.1.10:8443/aeosws?wsdl",  
                    httprio_);
 
    if(nedap_soap_) 
        nedap_soap_->findCarrierImage(NULL);   //просто вызвал метод
Добавлено через 2 минуты
Все же поставьте soapui и посмотрите, там-то методы будут отображаться? все равно для отладки пригодится
1
 Аватар для Dinkin
783 / 556 / 136
Регистрация: 31.05.2013
Сообщений: 3,145
Записей в блоге: 3
17.10.2023, 14:29  [ТС]
Да, все получилось. Но.
1) Работает только если указываю что .wsdl брать локально
2) При каждом запросе просит появляется форма, чтобы ввести логин и пароль, хотя у меня везде в коде оно указано

Добавлено через 1 минуту
Все разобрался, спасибо!))
0
 Аватар для DPS
43 / 41 / 20
Регистрация: 12.11.2011
Сообщений: 188
17.10.2023, 14:31
Цитата Сообщение от Dinkin Посмотреть сообщение
Да, все получилось. Но.
1) Работает только если указываю что .wsdl брать локально
2) При каждом запросе просит появляется форма, чтобы ввести логин и пароль, хотя у меня везде в коде оно указано

Добавлено через 1 минуту
Все разобрался, спасибо!))
Ну уже неплохо) и запросы проходят? без глюков? у меня запросы срезало, пришлось переопределять методы. А почему пароль-то просит? Попробуйте динамически создать, так тоже будет просить?
0
 Аватар для Dinkin
783 / 556 / 136
Регистрация: 31.05.2013
Сообщений: 3,145
Записей в блоге: 3
17.10.2023, 14:38  [ТС]
Мне просто разработчики 1С, оставили один параметр, куда я в текстовом виде посылаю параметры с названием операции типа так:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
    HTTPRIO1->HTTPWebNode->UserName = "pupkin";
    HTTPRIO1->HTTPWebNode->Password = "123";
 
   _di_WebService1Soap ws = GetWebService1Soap(false, "http:.........1cws", HTTPRIO1);
    if(!ws)
        {
            ShowMessage(" Не норм");
        }
        else
            {
                Memo2->Text = ws->Operation("ShowMeSmile",Memo3->Text); // <- вот тут указываю любые методы текстом
                ShowMessage("Норм");
            }
Цитата Сообщение от DPS Посмотреть сообщение
А почему пароль-то просит? Попробуйте динамически создать, так тоже будет просить?
А это я в коде накосячил, я по ошибке указал ссылку на .wsdl, а надо было на сам сервер =)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
17.10.2023, 14:38
Помогаю со студенческими работами здесь

Как послать xml через soap?
Добрый день Подскажите пожалуйста как послать xml через soap? С чего начать? Нашла в интернете код. А что к чему не могу понять ...

Послать POST запрос запрос с двумя и более параметрами?
Делаю так: string ProxyString = &quot;&quot;; string URI = @&quot;http://www.easyprog.ru/test.php&quot;;; string...

Послать GET запрос
Добрый день. Подскажите как сделать. У меня есть файл sand.php который отправляет данные с формы на почту. Требуется еще прикрутить get...

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

SOAP запрос
Добрый вечер! Как создать новое SOAP-сообщение внутри handleMessage? Смысл в том, что при отправки soap-сообщения, я должен его полностью...


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru