微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用UTL_HTTP

如何解决使用UTL_HTTP

我正在尝试编写一个连接到供应商服务器并传输一些学生数据的PL / sql过程。

我一直在使用UTL_HTTP,但没有成功。

下面是我的UTL_HTTP cpde。我剪切了大部分数据以便于阅读。

    var_data_body :='input_data=[{"School ID*":"B10011122","Class Code*":"MATH101","Location*":"CLB223"},{"School ID*":"B20022233","Class Code*":"BIOL101","Location*":"CLB123"}]';

    var_body_combine:= 'input_type=JSON '||var_data_body ||
                        ||' drop_not_passed_enrollments=false '
                        ||' dry_run=true '; 
    var_body_length:= LENGTH(var_body_combine);

    const_HTTP_Request := UTL_HTTP.BEGIN_REQUEST (temp_new_url,const_POST_method);
    utl_http.set_header(const_HTTP_Request,'Content-Type','application/x-www-form-urlencoded');
    utl_http.set_header(const_HTTP_Request,'Content-Length',var_body_length);
    UTL_HTTP.set_header(const_HTTP_Request,'Authorization','Bearer '|| var_token);  --this is vendor authorization token that I got from earlier handshake process.
    UTL_HTTP.set_header(const_HTTP_Request,'X-TW-PersonId',const_userid);  --this is my user_id

    UTL_HTTP.write_text(const_HTTP_Request,var_body_combine);

    DBMS_OUTPUT.put_line ('My full var_body is: '||var_body_combine);
      
    const_http_response := UTL_HTTP.GET_RESPONSE (const_HTTP_Request);


供应商服务器给我一个通用错误消息,提示他们无法处理我的请求。 我要求供应商代表上载数据主体部分,他们说他们可以上载我的数据。 我想我在语法上做错了。

我一直在尝试通过将主体分成不同的行(或添加/删除数据-urlencode),如下所示。但是仍然给我错误。 我什至给了我一些错误请求错误消息的步骤。

    UTL_HTTP.write_text(const_HTTP_Request,'--data-urlencode input_type=JSON');
    UTL_HTTP.write_text(const_HTTP_Request,'--data-urlencode '|| var_data_body );
    UTL_HTTP.write_text(const_HTTP_Request,'--data-urlencode drop_not_passed_enrollments=false');
    UTL_HTTP.write_text(const_HTTP_Request,'--data-urlencode dry_run=true');   

我阅读了一些有关UTL_HTTP的文档,由于某些示例非常简单,因此我不确定会错过什么。

以前有没有人从事过类似的工作?

任何见识都会受到赞赏。

谢谢。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。