`
wuhuizhong
  • 浏览: 684328 次
  • 性别: Icon_minigender_1
  • 来自: 中山
社区版块
存档分类
最新评论

通过ORACLE的UTL_HTTP工具包发送包含POST参数的请求

 
阅读更多
DECLARE
  req       utl_http.req;
  resp      utl_http.resp;
  l_clob    CLOB;
  l_buf_raw RAW(10000);
  amount    NUMBER := 9000;
  VALUE     VARCHAR2(1000);
  l_process VARCHAR2(20);
  l_req_blob    BLOB;
  l_buf_len_std NUMBER := 900;
  l_buf_len_cur NUMBER;
  l_bod_len     NUMBER;
BEGIN
  req := utl_http.begin_request('http://159.77.226.31/logincheck.asp', 'POST');
  utl_http.set_header(req, 'Content-Type','application/x-www-form-urlencoded');      --该参数代表请求包含POST数据
  utl_http.set_header(req, 'Keep-Alive', '  timeout=1');--该参数代表超时
  dbms_lob.createtemporary(lob_loc => l_clob, cache => TRUE);
  l_clob := 'muser=32323&&passwd=232323&&x=33&&y=17';--POST参数的内容,格式为:变量=值&变量=值
  dbms_lob.createtemporary(lob_loc => l_req_blob, cache => TRUE);
  heb_lob_pub.clob2blob(p_clob => l_clob, x_blob => l_req_blob,
                        p_cset_f => 'utf8', p_cset_t => 'utf8');
  utl_http.set_header(req, 'Content-Length', dbms_lob.getlength(l_req_blob));--该参数代表我发送的POST报文多长,不可少
  utl_http.write_raw(req, l_req_blob);
  resp := utl_http.get_response(req);
  LOOP
    utl_http.read_line(resp, VALUE, TRUE);
    dbms_output.put_line(VALUE);
  END LOOP;
  utl_http.end_response(resp);
  utl_http.end_request(req);
EXCEPTION
  WHEN utl_http.end_of_body THEN
    utl_http.end_response(resp);
  WHEN OTHERS THEN
    utl_http.end_response(resp);
    utl_http.end_request(req);
END;

 

分享到:
评论

相关推荐

    oracle plsql 通过utl_http调用 webservice

    UTL_HTTP是Oracle提供的一种内置包,它提供了HTTP协议的客户端功能,可以用来发送GET、POST等请求到Web服务器。这对于需要从数据库内部集成外部服务的应用程序来说是极其有用的。在Oracle PL/SQL中调用Web Service...

    oracle通过存储过程POST方式访问接口

    示例存储过程.txt文件可能包含了实际的PL/SQL代码示例,例如如何使用UTL_HTTP包发送POST请求。以下是一个基本的示例: ```sql DECLARE l_http_request UTL_HTTP.REQ; l_http_response UTL_HTTP.RES; l_url ...

    oracle传入一个字符串,调用webservice

    - **UTL_HTTP包**:Oracle提供的一个工具包,用于处理HTTP请求和响应,支持GET和POST方法。 - **DBMS_LOB**:Oracle中的一个包,提供了对大型对象(LOBs)的支持,包括CLOB、BLOB、NCLOB和BFILE。 #### 实现步骤 ...

    oracle webservice实例

    3. JDK:Java 开发工具包,因为 Oracle Web Services 大多基于 Java 平台。 4. Internet 连接:用于访问外部 Web Service 提供商。 **简述** Oracle WebService 实例主要涉及以下几个步骤: 1. **发现 Web Service...

    plsql调用webservice.rar

    - Oracle提供了一个包叫做UTL_HTTP,用于在PL/SQL中执行HTTP请求,这为调用Web Service提供了基础。 - UTL_SMTP包也可以辅助发送邮件,但在此场景中不直接用于Web Service调用。 3. **调用步骤** - **解析WSDL**...

    從 PL/SQL 中調用 ROR 创建的 Web 服务

    - `UTL_HTTP.WRITE_TEXT` 用于发送请求体,如 JSON 对象。 - `UTL_HTTP.GET_RESPONSE` 获取服务器的响应,然后可以读取响应头和响应体。 4. **处理响应**:响应体通常需要解析,例如,如果是 JSON 格式,可以使用...

    Oracle APEX开发的协同工作平台与Micrsoft Lync消息集成.pdf

    这个触发器调用名为get_lync的过程,该过程使用Oracle的UTL_HTTP工具包,向Lync的消息API发送POST请求。请求中包含了任务执行人的信息、任务名称、关键描述、任务处理页面URL以及任务ID等重要参数。 get_lync过程的...

    通过存储过程直接访问服务器URL

    2. **使用内置函数或自定义函数**:数据库可能提供内置函数(如SQL Server的`WebExecute`或Oracle的`UTL_HTTP`包)来发起HTTP请求。如果没有,可能需要编写自定义函数,利用PL/SQL或T-SQL等编程语言实现。 3. **...

    ORA_Tweet-开源

    该项目利用 Oracle 数据库的内置 PL/SQL 库,特别是 UTL_HTTP 包,来发送 HTTP 请求,更新 Twitter 用户的状态。这为那些需要在 Oracle 数据库环境中进行社交媒体集成的应用提供了极大的便利。 1. **UTL_HTTP 库** ...

    Forms Developer使用及解决问题

    Oracle Forms Developer是一款强大的工具,用于构建交互式的数据库应用程序。它包含Forms Builder,允许开发者创建复杂的表单,并处理各种运行时问题。以下是一些关键的知识点和解决方案: 1. **键盘触发子**: ...

Global site tag (gtag.js) - Google Analytics