Как сохранить тело ответа на не 200 ответов в Oracle UTL_HTTP? - PullRequest
3 голосов
/ 03 апреля 2012

Я обнаружил, что если я позвоню UTL_HTTP.GET_RESPONSE и получу ответ об ошибке (в нашем случае 500), то при вызове UTL_HTTP.READ_TEXT произойдет сбой с ORA-29261: bad argument. Как я могу увидеть тело ответа при наличии ошибки?

Ответы [ 2 ]

2 голосов
/ 30 октября 2012

В итоге мы решили позвонить

UTL_HTTP.set_response_error_check(false);

перед выполнением запроса.

2 голосов
/ 03 апреля 2012

В прошлом я читал заголовки, а затем выполнял read_line, чтобы получить отдельные строки ответа:

v_resp := utl_http.get_response (v_req);

v_status := v_resp.status_code;

FOR i IN 1..UTL_HTTP.GET_HEADER_COUNT(v_resp) LOOP
  utl_http.get_header(v_resp, i, v_name, v_value);
  dbms_output.put_line(v_name || ': ' || v_value);
END LOOP;

BEGIN
  utl_http.read_line(v_resp, v_value, TRUE);
  v_response := v_value;
  dbms_output.put_line(v_value);
EXCEPTION
  WHEN OTHERS THEN
    NULL;  -- handle exception here
END;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...