Oracle 如何在调用HTTP页面时提供用户名和密码?

Oracle 如何在调用HTTP页面时提供用户名和密码?,oracle,model-view-controller,authentication,plsql,oracle11g,Oracle,Model View Controller,Authentication,Plsql,Oracle11g,当我运行此程序时,我有此代码。我得到凭据错误。如何提供凭据。身份验证在https页面中设置为windows。表示将出现弹出窗口以获取凭据 declare req UTL_HTTP.REQ; resp UTL_HTTP.RESP; value varchar2(1024); p_url varchar2(4000); OPT varchar2(1000); BEGIN dbms_output.put

当我运行此程序时,我有此代码。我得到凭据错误。如何提供凭据。身份验证在https页面中设置为windows。表示将出现弹出窗口以获取凭据

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">

401-未经授权:由于凭据无效,访问被拒绝。
您有两个选项(假设远程服务器接受HTTP基本身份验证):

  • 您可以在url前面加上用户名:password@url(例如
    p_url:='http://username:password@www.xyz.com/”;
  • 或者您可以使用授权标头。(例如
    utl_http.set_头(req,'Authorization','Basic'| | utl_encode.base64_encode('username:password');