我的问题是,当我使用oracle 11g UTL_HTTP程序包发出Web请求时,在我的参数集中,我发送了3个参数来自restful web服务,但是在一个param的web服务中只返回部分数据。在数据参数中只回溯到EW185只有我的代码中的错误是什么?
我的代码,
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"</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);
答案 0 :(得分:0)
我解决了这个问题。错误在XML代码中,在ITEM No中有特殊字符的操作系统转换,这里是双引号&#34;。提交此请求时,XML部分截断此转换所在的位置。为了防止这种情况,我必须删除XML中的特殊字符
under pdata XML string <PART_NAME>MONITOR EZY 18.5"</PART_NAME> this line cause
error