2

当我运行此代码时,我有此代码,但出现凭据错误。如何提供凭据。身份验证设置为 https 页面中的窗口。意味着弹出将出现以获取凭据

declare
      req    UTL_HTTP.REQ;
      resp   UTL_HTTP.RESP;
      value  varchar2(1024);
      p_url  varchar2(4000);
      OPT    varchar2(1000);
    BEGIN
      dbms_output.put_line('');
      p_url:='http://www.xyz.com/';

      dbms_output.put_line(p_url);
      req := UTL_HTTP.begin_REQUEST(p_url);
      utl_http.set_header(req, 'User-Agent', 'Mozilla/4.0');

      resp := utl_http.get_response(req);
      loop
         utl_http.read_line(resp, value, true);
         dbms_output.put_line(value);
      end loop;

    exception
        when utl_http.end_of_body then
           utl_http.end_response(resp);
    END;

当我运行这个我得到

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
<title>401 - Unauthorized: Access is denied due to invalid credentials.</title>
<style type="text/css">
4

1 回答 1

3

您有两个选择(假设远程服务器接受 HTTP 基本身份验证):

  1. 你可以在 url 前面加上 username:password@url(eg
    p_url:='http://username:password@www.xyz.com/';)
  2. 或者您可以使用 Authorization 标头。(例如
    utl_http.set_header(req, 'Authorization', 'Basic ' || utl_encode.base64_encode('username:password'));
于 2013-05-13T12:29:26.123 回答