我发现如果我拨打UTL_HTTP.GET_RESPONSE
并收到错误回复(在这种情况下为500),当我致电UTL_HTTP.READ_TEXT
时,它会失败并显示ORA-29261: bad argument
。出现错误时如何查看响应正文?
答案 0 :(得分:2)
我过去所做的是阅读标题,然后执行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;
答案 1 :(得分:2)
解决方案最终要打电话
UTL_HTTP.set_response_error_check(false);
在提出请求之前。