powered by simpleCommunicator - 2.0.29     © 2024 Programmizd 02
Map
Форумы / Oracle [игнор отключен] [закрыт для гостей] / utl_http русские буквы при первом вызове рест-апи заменяются на U+fffd
2 сообщений из 2, страница 1 из 1
utl_http русские буквы при первом вызове рест-апи заменяются на U+fffd
    #40116508
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
отправляю на сервер запрос с кириллицей
при первом вызове в сессии кириллица доходит до рест-апи в виде символа U+fffd (65533), и кириллическая часть ответа тоже возвращается нечитаемой
при всех следующих вызовах в той же сессии с теми же параметрами кириллица доходит в обе стороны в нормальном виде


Код: 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.
************
   -- v_xmlRequest тут json с русскими буквами. Тип Varchar2

    Utl_http.Set_transfer_timeout(60);

    l_req := Utl_http.Begin_request(url => v_url, METHOD => 'POST', http_version => 'HTTP/1.1');

    Utl_http.Set_header(r => l_req, NAME  => 'user-agent',   VALUE => 'mozilla/4.0');
    Utl_http.Set_header(r => l_req, NAME  => 'Content-Type', VALUE => 'application/json');
    -- 17-08-2020
    Utl_http.Set_header(r => l_req, NAME  => 'charset',      VALUE => 'utf-8');
    Utl_http.Set_body_charset('utf-8');
   
    l_i := LENGTH(v_xmlRequest);
    Utl_http.Set_header(l_req,
                        'Content-Length',
                        -- VALUE => LENGTHB(v_xmlRequest)
                        -- VALUE => l_i + 15
                        LENGTH(CONVERT(v_xmlRequest, 'UTF8')) -- 18-11-2021
                       );


    ps    := 1;
    l_amt := 48;
    LOOP
        Utl_http.Write_text(l_req, SUBSTR(v_xmlRequest, ps, l_amt));
        ps := ps + l_amt;
        IF ps > l_i THEN
            EXIT;
        END IF;

    END LOOP;

    l_resp := Utl_http.Get_response(l_req);

************


PARAMETERVALUESESS/dbNLS_LANGUAGERUSSIANsessNLS_DATE_LANGUAGERUSSIANsessNLS_SORTRUSSIANsessNLS_COMPBINARYsessNLS_LENGTH_SEMANTICSBYTEsessNLS_NCHAR_CONV_EXCPFALSEsessNLS_LANGUAGEAMERICANdbNLS_TERRITORYAMERICAdbNLS_CHARACTERSETRU8PC866dbNLS_SORTBINARYdbNLS_COMPBINARYdbNLS_LENGTH_SEMANTICSBYTEdbNLS_NCHAR_CONV_EXCPFALSEdbNLS_NCHAR_CHARACTERSETAL16UTF16dbNLS_RDBMS_VERSION11.2.0.4.0db
...
Рейтинг: 0 / 0
utl_http русские буквы при первом вызове рест-апи заменяются на U+fffd
    #40116510
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
перенес строку Utl_http.Set_body_charset('utf-8');
поставил перез созданием запроса l_req := Utl_http.Begin_request(url => v_url, METHOD => 'POST', http_version => 'HTTP/1.1');
русские буквы появились сразу
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / utl_http русские буквы при первом вызове рест-апи заменяются на U+fffd
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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