我刚刚开始使用utl_http,所以请多多包涵。
我正在尝试开发一个使用utl_http进行发布的PL / SQL程序。
我从互联网上获取了大部分代码,并插入了自己的价值观。
我正在尝试进行POST,并且收到错误的请求返回。
下面是我的代码。关于如何纠正它的任何建议,以及
有关如何调试这些类型的程序的任何提示。错误的请求是
相当笼统的消息,并且不会向您指出错误的任何实际方向。谢谢。
================================================ ================================
clear screen;
set serveroutput on size unlimited;
declare
req utl_http.req;
res utl_http.resp;
ctx utl_http.request_context_key;
url varchar2(1024);
name varchar2(1024);
value varchar2(1024);
text varchar2(32767);
json_data varchar2(1024);
begin
url := 'https://test.test.edu/bancas/api/users/add';
json_data := ' "uid" : "cjones","passwd" : "nullnullnullnull","domain" : "NULL", "disabled" : "false","expired" : "false" ';
ctx := utl_http.create_request_context(
wallet_path => 'file:/aa/app/oracle/product/12.1.0/db_1/xyz/wallet_file',
wallet_password => 'walletpassword',
enable_cookies => TRUE,
max_cookies => 100,
max_cookies_per_site => 10);
req := utl_http.begin_request(url, 'POST',' HTTP/1.1', ctx);
utl_http.set_header(req, 'user-agent', 'mozilla/4.0');
utl_http.set_header(req, 'content-type', 'applicaton/json');
utl_http.set_header(req, 'Content-Length', length(json_data));
utl_http.set_authentication(req, 'myuser', 'mypasswd', 'Basic');
utl_http.write_text(req, json_data);
res := utl_http.get_response(req);
if (res.status_code != utl_http.http_ok) then
dbms_output.put_line('res := utl_http.get_response(req) command ' || res.status_code);
dbms_output.put_line('HTTP response status code : ' || res.status_code);
dbms_output.put_line('HTTP response reason phrase : ' || res.reason_phrase);
dbms_output.put_line('HTTP response version : ' || res.http_version);
utl_http.end_response(res);
end if;
utl_http.end_response(res);
utl_http.destroy_request_context(ctx);
end;
/
`