1. <tfoot id='eug3q'></tfoot>
    2. <legend id='eug3q'><style id='eug3q'><dir id='eug3q'><q id='eug3q'></q></dir></style></legend>
      <i id='eug3q'><tr id='eug3q'><dt id='eug3q'><q id='eug3q'><span id='eug3q'><b id='eug3q'><form id='eug3q'><ins id='eug3q'></ins><ul id='eug3q'></ul><sub id='eug3q'></sub></form><legend id='eug3q'></legend><bdo id='eug3q'><pre id='eug3q'><center id='eug3q'></center></pre></bdo></b><th id='eug3q'></th></span></q></dt></tr></i><div id='eug3q'><tfoot id='eug3q'></tfoot><dl id='eug3q'><fieldset id='eug3q'></fieldset></dl></div>
        <bdo id='eug3q'></bdo><ul id='eug3q'></ul>
      1. <small id='eug3q'></small><noframes id='eug3q'>

      2. 如何在 PL/SQL 中发送带有表单数据和参数的 POST 请求

        How to sent a POST request with form-data and parameters in PL/SQL(如何在 PL/SQL 中发送带有表单数据和参数的 POST 请求)

        • <small id='C7uuT'></small><noframes id='C7uuT'>

            <tbody id='C7uuT'></tbody>

            <legend id='C7uuT'><style id='C7uuT'><dir id='C7uuT'><q id='C7uuT'></q></dir></style></legend>
              1. <tfoot id='C7uuT'></tfoot>

                <i id='C7uuT'><tr id='C7uuT'><dt id='C7uuT'><q id='C7uuT'><span id='C7uuT'><b id='C7uuT'><form id='C7uuT'><ins id='C7uuT'></ins><ul id='C7uuT'></ul><sub id='C7uuT'></sub></form><legend id='C7uuT'></legend><bdo id='C7uuT'><pre id='C7uuT'><center id='C7uuT'></center></pre></bdo></b><th id='C7uuT'></th></span></q></dt></tr></i><div id='C7uuT'><tfoot id='C7uuT'></tfoot><dl id='C7uuT'><fieldset id='C7uuT'></fieldset></dl></div>
                  <bdo id='C7uuT'></bdo><ul id='C7uuT'></ul>
                  本文介绍了如何在 PL/SQL 中发送带有表单数据和参数的 POST 请求的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                  问题描述

                  我正在尝试在 PL/SQL 中调用 REST WebService,但它不起作用.我收到此错误:

                  <块引用>

                  Content-type 必须是 multipart/form-data

                  这是我所拥有的:

                  DECLARE请求 UTL_HTTP.REQ;响应 UTL_HTTP.RESP;值 VARCHAR2(1024);-- 发布到的网址v_url VARCHAR2(200) := 'http://local/api/ws';-- 发布参数v_param VARCHAR2(500) := 'art=11111&qty=1';v_param_length NUMBER := length(v_param);开始req := UTL_HTTP.BEGIN_REQUEST (url=> v_url, method => 'POST');UTL_HTTP.SET_HEADER(req, 'User-Agent', 'Mozilla/4.0');UTL_HTTP.SET_HEADER (r => req,名称 =>'内容类型',值 =>'多部分/表单数据;字符集=utf-8;边界=/');UTL_HTTP.SET_HEADER (r => req,名称 =>'内容长度',值 =>v_param_length);UTL_HTTP.WRITE_TEXT (r => req,数据 =>v_param);响应:= UTL_HTTP.GET_RESPONSE(req);环形UTL_HTTP.READ_LINE(resp, value, TRUE);DBMS_OUTPUT.PUT_LINE(值);结束循环;UTL_HTTP.END_RESPONSE(resp);例外WHEN UTL_HTTP.END_OF_BODY THENUTL_HTTP.END_RESPONSE(resp);结尾;

                  这是一个带有 CURL 的例子:

                  curl -v -X POST -H "Content-Type: multipart/form-data" -F "art=11111" -F "qty=1" http://local/api/ws

                  这个例子在 curl 上工作得很好,但我不知道为什么它在 PL/SQL 中没有.你能帮助我吗 ?

                  解决方案

                  我认为您不能像在 URL 中那样使用 POST 和 GET 查询...

                  做你期望的事情看起来很困难.以下是来自 Ask Tom 的一些输入:

                  这个想法是生成帖子文本,包括一个特定的边界",看起来像这样:

                  <块引用>

                  POST/path/to/script.php HTTP/1.0主机:example.com内容类型:多部分/表单数据,边界=AaB03x内容长度:$requestlen--AaB03x内容配置:表单数据;名称=字段1"$field1--AaB03x内容配置:表单数据;名称=字段2"$field2--AaB03x内容配置:表单数据;名称=用户文件";文件名="$文件名"内容类型:$mimetype内容传输编码:二进制$二进制数据--AaB03x--

                  还有 相同问题在这里开发有很多代码.

                  希望有帮助.

                  I'm trying to call REST WebService in PL/SQL but it doesn't work. I get this error:

                  Content-type must be multipart/form-data

                  Here is what I have:

                  DECLARE
                    req   UTL_HTTP.REQ;
                    resp  UTL_HTTP.RESP;
                    value VARCHAR2(1024);  -- URL to post to
                    v_url VARCHAR2(200) := 'http://local/api/ws';
                    -- Post Parameters
                    v_param VARCHAR2(500) := 'art=11111&qty=1'; 
                    v_param_length NUMBER := length(v_param);
                  BEGIN
                    req := UTL_HTTP.BEGIN_REQUEST (url=> v_url, method => 'POST');
                    UTL_HTTP.SET_HEADER(req, 'User-Agent', 'Mozilla/4.0');
                    UTL_HTTP.SET_HEADER (r      =>  req,
                                         name   =>  'Content-Type',
                                         value  =>  'multipart/form-data; charset=utf-8; boundary=/');
                    UTL_HTTP.SET_HEADER (r      =>   req,
                                         name   =>   'Content-Length',
                                         value  =>   v_param_length);
                    UTL_HTTP.WRITE_TEXT (r      =>   req,
                                         data   =>   v_param); 
                  
                       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);
                  EXCEPTION
                    WHEN UTL_HTTP.END_OF_BODY THEN
                      UTL_HTTP.END_RESPONSE(resp);
                  END;
                  

                  Here is an example with CURL :

                  curl -v -X POST -H "Content-Type: multipart/form-data" -F "art=11111" -F "qty=1" http://local/api/ws
                  

                  This example works fine with curl but i don't know why it doesn't in PL/SQL. Can you help me ?

                  解决方案

                  I don't think you can use a POST with GET query like you do in the URL...

                  It looks quite difficult to do what you expect. Here is some input from Ask Tom:

                  The idea is to generate the post text, including a specific "boundary", which will look like this:

                  POST /path/to/script.php HTTP/1.0
                  Host: example.com
                  Content-type: multipart/form-data, boundary=AaB03x
                  Content-Length: $requestlen
                  
                  --AaB03x
                  content-disposition: form-data; name="field1"
                  
                  $field1
                  --AaB03x
                  content-disposition: form-data; name="field2"
                  
                  $field2
                  --AaB03x
                  content-disposition: form-data; name="userfile"; filename="$filename"
                  Content-Type: $mimetype
                  Content-Transfer-Encoding: binary
                  
                  $binarydata
                  --AaB03x--
                  

                  There is also same issue developed here with lots of code.

                  Hope it helps.

                  这篇关于如何在 PL/SQL 中发送带有表单数据和参数的 POST 请求的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                  本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!

                  相关文档推荐

                  How to redirect the output of DBMS_OUTPUT.PUT_LINE to a file?(如何将 DBMS_OUTPUT.PUT_LINE 的输出重定向到文件?)
                  How do I get column datatype in Oracle with PL-SQL with low privileges?(如何使用低权限的 PL-SQL 在 Oracle 中获取列数据类型?)
                  Get a list of all functions and procedures in an Oracle database(获取 Oracle 数据库中所有函数和过程的列表)
                  Why cannot I create triggers on objects owned by SYS?(为什么我不能在 SYS 拥有的对象上创建触发器?)
                  Returning result even for elements in IN list that don#39;t exist in table(即使对于表中不存在的 IN 列表中的元素也返回结果)
                  Reset Sequence in oracle 11g(oracle 11g 中的重置序列)

                  <small id='wQp3G'></small><noframes id='wQp3G'>

                    • <bdo id='wQp3G'></bdo><ul id='wQp3G'></ul>

                          <tfoot id='wQp3G'></tfoot>
                            <tbody id='wQp3G'></tbody>

                          • <legend id='wQp3G'><style id='wQp3G'><dir id='wQp3G'><q id='wQp3G'></q></dir></style></legend>
                            <i id='wQp3G'><tr id='wQp3G'><dt id='wQp3G'><q id='wQp3G'><span id='wQp3G'><b id='wQp3G'><form id='wQp3G'><ins id='wQp3G'></ins><ul id='wQp3G'></ul><sub id='wQp3G'></sub></form><legend id='wQp3G'></legend><bdo id='wQp3G'><pre id='wQp3G'><center id='wQp3G'></center></pre></bdo></b><th id='wQp3G'></th></span></q></dt></tr></i><div id='wQp3G'><tfoot id='wQp3G'></tfoot><dl id='wQp3G'><fieldset id='wQp3G'></fieldset></dl></div>