Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / ответ веб-сервиса в 1251 / 5 сообщений из 5, страница 1 из 1
05.01.2017, 20:37
    #39379832
andreymx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ответ веб-сервиса в 1251
Код: 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.
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.
DECLARE
   v_URL         VARCHAR2(100) := 'https://www.zst.local/';
   req           UTL_HTTP.req;
   resp          UTL_HTTP.resp;
   is_response   BOOLEAN;
   v_txt_resp    VARCHAR2(400);
   v_bad_auth    EXCEPTION;
   v_empty_xml   EXCEPTION;

   walletdir  VARCHAR2 ( 100 ) := 'file:/***';
   walletpass VARCHAR2 ( 100 ) := '***';
   value VARCHAR2 ( 32000 );

    xmlRequest VARCHAR2(4000);
    xmlResponse varchar2(4000);

   PROCEDURE end_resp
   IS
   BEGIN
      /* is_response, resp - глобальные переменные на уровне процедуры */
      IF is_response THEN
         UTL_HTTP.end_response(resp);
         is_response := FALSE;
      END IF;
   END;

BEGIN

    UTL_HTTP.SET_WALLET( walletdir, walletpass );

    v_URL := 'https://www.***.local/***Service/***Service.asmx';

    xmlRequest := '<?xml version="1.0" encoding="utf8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
  <soap12:Body>
    <UserInfo xmlns="***Service">
      <svt_name>7264</svt_name>
      <sam_name></sam_name>
      <fam></fam>
      <cex></cex>
      <otd></otd>
      <tel></tel>
      <regn>0</regn>
      <tab>0</tab>
    </UserInfo>
  </soap12:Body>
</soap12:Envelope>';

    req := utl_http.begin_request('https://www.***.local/***Service/***Service.asmx', 'POST','HTTP/1.1');

    utl_http.set_header(req, 'Content-Type', 'text/xml');
    utl_http.set_header(req, 'Content-Length', length(xmlRequest));
    utl_http.set_header(req, 'SOAPAction', '***Service/UserInfo');
    utl_http.write_text(req, xmlRequest);
    resp := utl_http.get_response(req);

    is_response := TRUE;

     BEGIN

        LOOP
           UTL_HTTP.read_text(resp, value, 4000);
           dbms_output.put(value);

        END LOOP;
         EXCEPTION
            WHEN UTL_HTTP.end_of_body THEN null;
         END;

      end_resp;

END;

работает

русские буквы приходят вопросами
Код: plaintext
1.
2.
3.
<TAB>74</TAB>
<PHONES>30-08</PHONES>
<DOLGN>?????????????? ????????????? -??? ????? ????????????</DOLGN>
<PRED_NAME>?????? "????????????????????????"</PRED_NAME>

данные приходят, судя по всему, в UTF-8, а БД в 1251. И всякие convert'ы идут лесом
...
Рейтинг: 0 / 0
05.01.2017, 22:04
    #39379863
andreymx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ответ веб-сервиса в 1251
Коллеги, жду положительных советов
...
Рейтинг: 0 / 0
06.01.2017, 04:08
    #39379927
suPPLer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ответ веб-сервиса в 1251
andreymx,

RTFM UTL_HTTP.set_body_charset .

Код: plsql
1.
2.
3.
4.
...
    resp := utl_http.get_response(req);
    utl_http.set_body_charset( resp, 'UTF-8' );
...



PS: К серверу тоже не факт, что будет уходить правильно, когда появится кириллица в запросе.
...
Рейтинг: 0 / 0
06.01.2017, 07:28
    #39379937
andreymx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ответ веб-сервиса в 1251
suPPLerandreymx,

RTFM UTL_HTTP.set_body_charset .

Код: plsql
1.
2.
3.
4.
...
    resp := utl_http.get_response(req);
    utl_http.set_body_charset( resp, 'UTF-8' );
...




PS: К серверу тоже не факт, что будет уходить правильно, когда появится кириллица в запросе.спасибо, что-то такое уже попробовал
в dbms нормально выводит
в XML складываю - не совсем нормально
буду ковырять далее
...
Рейтинг: 0 / 0
06.01.2017, 07:47
    #39379940
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ответ веб-сервиса в 1251
andreymxрусские буквы приходят вопросами Правильный сервис возвращает Content-Type, в соответствии с которым read_text автоматом преобразует.
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / ответ веб-сервиса в 1251 / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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