2

これを実行すると、このコードがあり、資格情報エラーが発生します。資格情報を与える方法。認証は、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">
4

1 に答える 1

3

2 つのオプションがあります (リモート サーバーが 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 に答える