Гость
Форумы / Oracle [игнор отключен] [закрыт для гостей] / web-service plsql / 19 сообщений из 19, страница 1 из 1
29.09.2020, 10:05
    #40003804
Бакыт
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
web-service plsql
здравствуйте помогите сделать вызов внешнего веб сервиса база 11 g
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
1. ОТПРАВКА SMS-СООБЩЕНИЙ.
Для отправки сообщений через систему smspro.nikita.kg оборудование партнера должно
вызвать скрипт: http://smspro.nikita.kg/api/message
Либо https://smspro.nikita.kg/api/message для работы по защищенному SSL-протоколу
Для вызова используется POST – запрос.
Тело запроса должно содержать XML документ вида:
<?xml version="1.0" encoding="UTF-8"?>
<message>
<login>login</login>
<pwd>passwd</pwd>
<id>A88726</id>
<sender>My-company</sender>
<text>Any SMS message text</text>
<time>20100921235957</time>
<phones>
<phone>996550123456</phone>
<phone>996550123457</phone>
</phones>
<test>1</test>
</message>
...
Рейтинг: 0 / 0
29.09.2020, 10:11
    #40003810
123йй
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
web-service plsql
Бакыт,
Код: plsql
1.
 req := utl_http.begin_request(url => '127.0.0.1', method => 'POST', 
...
Рейтинг: 0 / 0
29.09.2020, 10:28
    #40003825
Бакыт
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
web-service plsql
123йй
Бакыт,
Код: plsql
1.
 req := utl_http.begin_request(url => '127.0.0.1', method => 'POST', 


параметры как передать? utl_http не работал можете подсказать
...
Рейтинг: 0 / 0
29.09.2020, 10:39
    #40003837
env
env
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
web-service plsql
Бакыт,

STFF
...
Рейтинг: 0 / 0
29.09.2020, 10:50
    #40003844
Бакыт
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
web-service plsql
вот так написа, запускаю получаю ошибку ORA-29273 http request failed и TNS: no listner
Код: plsql
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.
create or replace procedure send_sms_nikita is
  req utl_http.req;
  res utl_http.resp;
  url varchar2(4000) := 'http://smspro.nikita.kg/api/message';
  --name varchar2(4000);
  buffer varchar2(4000);
  content varchar2(4000) := '<?xml version="1.0" encoding="UTF-8"?>
<message>
<login>nikita</login>
<pwd>qwerty</pwd>
<id>999999</id>
<sender>OAO SAD</sender>
<text>Any SMS message text</text>
<phones>
<phone>996550665577</phone>
</phones>
</message>';

begin
  req := utl_http.begin_request(url, 'POST',' HTTP/1.1');
  utl_http.set_header(req, 'user-agent', 'mozilla/4.0');
  utl_http.set_header(req, 'content-type', 'application/xml');
  utl_http.set_header(req, 'Content-Length', length(content));

  utl_http.write_text(req, content);
  res := utl_http.get_response(req);
  -- process the response from the HTTP call
  begin
    loop
      utl_http.read_line(res, buffer);
      dbms_output.put_line(buffer);
    end loop;
    utl_http.end_response(res);
  exception
    when utl_http.end_of_body
    then
      utl_http.end_response(res);
  end;
end;
...
Рейтинг: 0 / 0
29.09.2020, 11:05
    #40003849
123йй
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
web-service plsql
Бакыт,

telnet с сервера проходит ?
...
Рейтинг: 0 / 0
29.09.2020, 11:11
    #40003851
Бакыт
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
web-service plsql
123йй
Бакыт,

telnet с сервера проходит ?


postman запускаю , sms отправляет
...
Рейтинг: 0 / 0
29.09.2020, 11:14
    #40003853
Бакыт
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
web-service plsql
вот такой еще код нашел можно ли адаптировать под мой вебсервис?
Код: plsql
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.
CREATE OR REPLACE FUNCTION add_numbers (p_int_1  IN  NUMBER,
                                        p_int_2  IN  NUMBER)
  RETURN NUMBER
AS
  l_envelope  CLOB;
  l_xml       XMLTYPE;
  l_result    VARCHAR2(32767);
BEGIN

  -- Build a SOAP document appropriate for the web service.
  l_envelope := '<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
  xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <soap:Body>
    <ws_add xmlns="http://oracle-base.com/webservices/" soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
      <int1 xsi:type="xsd:integer">' || p_int_1 || '</int1>
      <int2 xsi:type="xsd:integer">' || p_int_2 || '</int2>
    </ws_add>
  </soap:Body>
</soap:Envelope>';

  -- Get the XML response from the web service.
  l_xml := APEX_WEB_SERVICE.make_request(
    p_url      => 'http://oracle-base.com/webservices/server.php',
    p_action   => 'http://oracle-base.com/webservices/server.php/ws_add',
    p_envelope => l_envelope
  );

  -- Display the whole SOAP document returned.
  DBMS_OUTPUT.put_line('l_xml=' || l_xml.getClobVal());

  -- Pull out the specific value of interest.
  l_result := APEX_WEB_SERVICE.parse_xml(
    p_xml   => l_xml,
    p_xpath => '//return/text()',
    p_ns    => 'xmlns:ns1="http://oracle-base.com/webservices/"'
  );

  DBMS_OUTPUT.put_line('l_result=' || l_result);

  RETURN TO_NUMBER(l_result);
END;


извините, я совсем незнаю как писать вызов сервиса из вне , но надо реализовать
...
Рейтинг: 0 / 0
29.09.2020, 11:18
    #40003855
123йй
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
web-service plsql
Бакыт,

asl
...
Рейтинг: 0 / 0
29.09.2020, 11:20
    #40003856
Бакыт
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
web-service plsql
123йй
Бакыт,

asl

ACL дал доступ
...
Рейтинг: 0 / 0
29.09.2020, 11:22
    #40003858
oragraf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
web-service plsql
Бакыт,

Из Oracle немного геморройнее вызывать rest. Тебе надо:
1. прописать ACL - две штуки. Один для http с портами(80), один для https с портами 443
2. положить на сервер субд файлик wallet. Путь к файлу и пароль тебе пригодится для указания в параметрах запроса.
3. вообще есть много примеров по вызову. Мой совет - сначала в postman отладить свой запрос к веб-сервису, чтобы все работало, потом начинать это через plsql
...
Рейтинг: 0 / 0
29.09.2020, 11:22
    #40003859
123йй
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
web-service plsql
Бакыт, значит все работает
...
Рейтинг: 0 / 0
29.09.2020, 11:28
    #40003863
Бакыт
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
web-service plsql
oragraf
Бакыт,

Из Oracle немного геморройнее вызывать rest. Тебе надо:
1. прописать ACL - две штуки. Один для http с портами(80), один для https с портами 443
2. положить на сервер субд файлик wallet. Путь к файлу и пароль тебе пригодится для указания в параметрах запроса.
3. вообще есть много примеров по вызову. Мой совет - сначала в postman отладить свой запрос к веб-сервису, чтобы все работало, потом начинать это через plsql


можете скинуть примеры, теорию изучать сейчас совсем времени нет

postman работает без проблем
...
Рейтинг: 0 / 0
29.09.2020, 11:30
    #40003866
env
env
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
web-service plsql
Бакыт
TNS: no listner

Это явно не имеет отношения к вызову сервиса
...
Рейтинг: 0 / 0
29.09.2020, 11:34
    #40003871
123йй
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
web-service plsql
env,

имеет, когда достучаться не может
Код: plsql
1.
2.
3.
4.
ORA-29273: HTTP request failed
ORA-06512: at "SYS.UTL_HTTP", line 1130
ORA-12541: TNS:no listener
ORA-06512: at line 41
...
Рейтинг: 0 / 0
29.09.2020, 11:37
    #40003874
Бакыт
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
web-service plsql
ACL вот так указал
1 smspro.nikita.kg 80 80 /sys/acls/nikita.xml

или мне надо было указать явно ?
Код: html
1.
 http://smspro.nikita.kg/api/messag

e
...
Рейтинг: 0 / 0
29.09.2020, 11:49
    #40003884
oragraf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
web-service plsql
Бакыт,

Код: plsql
1.
select * from user_network_acl_privileges


?
...
Рейтинг: 0 / 0
29.09.2020, 11:50
    #40003887
123йй
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
web-service plsql
авторили мне надо было указать явно ?
а почему бы не почитать документацию ?
...
Рейтинг: 0 / 0
29.09.2020, 12:07
    #40003890
Бакыт
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
web-service plsql
oragraf
Бакыт,

Код: plsql
1.
select * from user_network_acl_privileges


?


smspro.nikita.kg 80 80 connect GRANTED
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / web-service plsql / 19 сообщений из 19, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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