Я новичок в программировании с помощью сервисов REST, и мне не хватает места.
Мне нужно иметь доступ к определенному c набору сервисов REST из Oracle PL / SQL. Парень, который знает об услугах, ничего не знает о PL / SQL. Преодоление разрыва оказывается трудным.
Это в POSTMAN работает: (очевидно, я слишком новичок на сайте, чтобы публиковать скриншоты)
Действие: POST
URL: http://dev-osb.sh.com/LDAP/LDAPVndrMgmt
Авторизация: basi c, имя пользователя и пароль
Тело: Raw, JSON
{
"requestType": "listAccounts",
"uid": "FTTestDlete100",
"vendorRole": "FreightTrackingLATA" }
И Я получаю все ожидаемые результаты в формате JSON.
Этот PL / SQL должен (насколько я могу судить) делать то же самое, но это не так.
DECLARE
l_clob clob;
l_json clob;
BEGIN
--create the JSON request body
apex_json.initialize_clob_output();
apex_json.open_object();
apex_json.write('requestType', 'listAccounts');
apex_json.write('uid', 'FTTestDlete100');
apex_json.write('vendorRole', 'FreightTrackingLATA');
apex_json.close_all();
l_json := apex_json.get_clob_output();
apex_json.free_output();
l_clob := apex_web_service.make_rest_request(
p_url => 'http://dev-osb.sh.com/LDAP/LDAPVndrMgt',
p_username => 'theUserName',
p_password => 'thepassword',
p_http_method => 'POST',
p_parm_name => apex_util.string_to_table('Content-Type'),
p_parm_value => apex_util.string_to_table('application/json'),
p_body => l_json
);
dbms_output.put_line(to_char(l_clob));
END;
Как показано, я получаю "{" errorMessage ":" Не найдено приемлемого представления запроса "}"
Если я удаляю часть / LDAP / LDAPVndrMgt из URL, я получаю некоторый HTML код поговорка:
** Ошибка 404 - не найдена
Сервер не нашел ничего, соответствующего Request-URI. Не указывается, является ли условие временным или постоянным.
Если сервер не может sh сделать эту информацию доступной для клиента, вместо этого можно использовать код состояния 403 (Запрещено). Код состояния 410 (Унесенные) СЛЕДУЕТ использовать, если сервер знает через некоторый внутренне конфигурируемый механизм, что старый ресурс постоянно недоступен и не имеет адреса пересылки. **
Итак - что-то не работает правильно , Это похоже на то, что ресурсная часть (начиная с / LDAP ...) не может быть объединена с URL в функции PL / SQL, но без нее я получаю 404. Я надеюсь избежать go маршрут UTL_HTTP. Есть предложения?