首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UTL_HTTP http请求

UTL_HTTP http请求
EN

Stack Overflow用户
提问于 2014-07-07 12:33:35
回答 1查看 871关注 0票数 0

我的问题是,当我使用oracle 11g UTL_HTTP包发出web请求时,在我的参数集中,我从part风格的web服务发送了3个参数,但在web服务中,一个参数只接收了部分数据。在只接收EW185的数据参数中,我的代码中的错误是什么?

我的代码,

代码语言:javascript
复制
           pdata:=null;

    pdata:='<?xml version="1.0"?><XML>
    <PARTS>
    <PART>
    <PART_NO>AD3U1600W4G11-B</PART_NO>
    <PART_QTY>1</PART_QTY>
    <PART_NAME>RAM ADATA DDR3 4GB</PART_NAME>
    </PART>
    <PART>
    <PART_NO>E209329</PART_NO>
    <PART_QTY>2</PART_QTY>
    <PART_NAME>SATA Cables(Lian Feng)</PART_NAME>
    </PART>
    <PART>
    <PART_NO>K100</PART_NO>
    <PART_QTY>1</PART_QTY>
    <PART_NAME>Key Board</PART_NAME>
    </PART>
    <PART>
    <PART_NO>M100</PART_NO>
    <PART_QTY>1</PART_QTY>
    <PART_NAME>Mouse</PART_NAME>
    </PART>
    <PART>
    <PART_NO>EWCS4X6</PART_NO>
    <PART_QTY>1</PART_QTY>
    <PART_NAME>Packaging Stickers</PART_NAME>
    </PART>
    <PART>
    <PART_NO>EWCBMT</PART_NO>
    <PART_QTY>1</PART_QTY>
    <PART_NAME>Carton Boxes MT</PART_NAME>
    </PART>
    <PART>
    <PART_NO>EW185</PART_NO>
    <PART_QTY>1</PART_QTY>
    <PART_NAME>MONITOR  EZY 18.5&quot;</PART_NAME>
    </PART>
    <PART>
    <PART_NO>i5-3470</PART_NO>
    <PART_QTY>1</PART_QTY>
    <PART_NAME>Processor Intel i5</PART_NAME>
    </PART>
    <PART>
    <PART_NO>H61H2-M</PART_NO>
    <PART_QTY>1</PART_QTY>
    <PART_NAME>Mother board (ECS)</PART_NAME>
    </PART>
    <PART>
    <PART_NO>DT01ACA100</PART_NO>
    <PART_QTY>1</PART_QTY>
    <PART_NAME>HDD TOSHIBA 1TB</PART_NAME>
    </PART>
    <PART>
    <PART_NO>DESK-ProSE</PART_NO>
    <PART_QTY>1</PART_QTY>
    <PART_NAME>DESKTOP Product Serial Label</PART_NAME>
    </PART>
    <PART>
    <PART_NO>PN502</PART_NO>
    <PART_QTY>1</PART_QTY>
    <PART_NAME>Casing with power supply</PART_NAME>
    </PART>
    <PART>
    <PART_NO>FQC-05646</PART_NO>
    <PART_QTY>1</PART_QTY>
    <PART_NAME>WINDOWS 8 PRO LICENSES</PART_NAME>
    </PART>
    <PART>
    <PART_NO>Q101</PART_NO>
    <PART_QTY>1</PART_QTY>
    <PART_NAME>COOLING FAN(Q101)</PART_NAME>
    </PART>
    <PART>
    <PART_NO>YHS-100M</PART_NO>
    <PART_QTY>2</PART_QTY>
    <PART_NAME>CABLE TIE</PART_NAME>
    </PART>
    <PART>
    <PART_NO>EWRL25X60</PART_NO>
    <PART_QTY>1</PART_QTY>
    <PART_NAME>E-WIS RATING LABEL</PART_NAME>
    </PART>
    <PART>
    <PART_NO>HD5450</PART_NO>
    <PART_QTY>1</PART_QTY>
    <PART_NAME>VGA Cards 1GB</PART_NAME>
    </PART>
    <PART>
    <PART_NO>SH-224</PART_NO>
    <PART_QTY>1</PART_QTY>
    <PART_NAME>ODD DVD, SATA</PART_NAME>
    </PART>
    </PARTS>
    <CONFIG_NO>HT-39</CONFIG_NO><MODEL_NO>EWIS PRO 2400</MODEL_NO><MODEL_NAME>EWIS PRO 2400 MT PC</MODEL_NAME></XML>';
    l_param_list := 'U=admin@admin.com&P=password&data='||pdata; 


    l_param_list:=replace(l_param_list,';','');


    l_http_request := UTL_HTTP.begin_request ('loclahost/app/admin/index.php /api/serial/put_config' , 'POST' , 'HTTP/1.1');



    UTL_HTTP.set_header(l_http_request, 'Content-Type', 'application/x-www-form-urlencoded');
    UTL_HTTP.set_header(l_http_request, 'Content-Length', LENGTH(l_param_list));

    UTL_HTTP.write_text(l_http_request, l_param_list);


    l_http_response := UTL_HTTP.get_response(l_http_request);

    UTL_HTTP.read_text(l_http_response, l_response_text);

    UTL_HTTP.end_response(l_http_response);
EN

回答 1

Stack Overflow用户

发布于 2014-08-21 15:30:35

我解决了这个问题。错误在XML代码中,在项目编号中存在特殊字符的操作系统转换,此处为双引号。提交此请求时,请截断此转换所在的XML部分。为了防止出现这种情况,我必须删除XML中的特殊字符

代码语言:javascript
复制
 under pdata XML string <PART_NAME>MONITOR  EZY 18.5&quot;</PART_NAME> this line cause    
 error
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24603091

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档