我需要你的帮助。我试图通过PL / SQL程序调用web服务已近2个月了。
我可以使用Chrome Extension ARC调用网络服务。
但是当我使用UTL_HTTP Oracle API
时,它无效。
这是我的代码(有些行丢失,但我设法向您显示主要行)
DECLARE
http_method VARCHAR2(10) := 'POST';
CONTENT_TYPE_HEADER VARCHAR2(30) := 'Content-Type';
CONTENT_TYPE_LENGTH VARCHAR2(30) := 'Content-length';
CONTENT_TYPE_VALUE VARCHAR2(30) := 'text/plain';
v_param_length NUMBER :=12;
BEGIN
UTL_HTTP.SET_TRANSFER_TIMEOUT(request_timeout);
req := UTL_HTTP.BEGIN_REQUEST (url => UTL_URL.ESCAPE(v_url_1), method => http_method);
utl_http.set_authentication(req, 'myuser', '1234', 'Basic', FALSE);
UTL_HTTP.SET_HEADER (r => req, name => CONTENT_TYPE_HEADER, value => CONTENT_TYPE_VALUE);
UTL_HTTP.SET_HEADER (r => req, name => CONTENT_TYPE_LENGTH, value => v_param_length);
resp := UTL_HTTP.GET_RESPONSE(r => req);
UTL_HTTP.END_RESPONSE(resp);
EXCEPTION
WHEN UTL_HTTP.END_OF_BODY THEN
BEGIN
UTL_HTTP.END_RESPONSE(resp);
END;
WHEN UTL_HTTP.TOO_MANY_REQUESTS THEN
UTL_HTTP.END_RESPONSE(resp);
END;
这是错误:
<div id="header"><h1>Server Error</h1></div>
<div id="content">
<div class="content-container"><fieldset>
<h2>403 - Forbidden: Access is denied.</h2>
<h3>You do not have permission to view this directory or page using the credentials that you supplied.</h3>
</fieldset></div>
管理员告诉我这个错误不是由代理引起的:
[myuser @ myserver~] $ export https_proxy =
[myuser @ myserver~] $ export http_proxy =
[myuser @ myserver~] $ wget http://my-server-ws:1234 --2017-02-28 13:14:17-- http://my-server-ws:1234/解析my-server-ws(my-server-ws)... 10.10.5.70连接到my-server-ws (my-server-ws)| 10.10.5.70 |:1234 ...已连接。 HTTP请求已发送, 等待回复... 403 Forbidden 2017-02-28 13:14:17错误403: 禁止的。
答案 0 :(得分:1)
403响应通常表示以下两种情况之一:
提供了身份验证,但不允许经过身份验证的用户执行请求的操作。
- &gt;检查您的用户是否具有所有必要的权限
禁止所有用户操作。例如,当目录列表被禁用时,对目录列表的请求返回代码403。
- &gt;检查网络服务器的设置。