我知道这可能是一个非常愚蠢的问题,但我面临着PHP的需求,我已经用它做了一些非常简单的事情,但现在我真的需要帮助。
我有这样的场景:
我使用以下url调用Java Rest WS:
http://192.168.3.41:8021/com.search.ws.module.ModuleSearch/getResults/jsonp?xmlQuery=%3C?xml%20version%3D'1.0'%20encoding%3D'UTF-8'?%3E%3Cquery%20ids%3D%2216535%22%3E%3CmatchWord%3Ehave%3C/matchWord%3E%3CfullText%3E%3C![CDATA[]]%3E%3C/fullText%3E%3CquotedText%3E%3C!...
但为此,我不得不使用Javautil类来替换xml参数中的一些特殊字符,因为原始xml类似于:
<?xml version='1.0' encoding='UTF-8'?><query ids="16914"><matchWord>avoir</matchWord><fullText><![CDATA[]]></fullText><quotedText><![CDATA[]]></quotedText><sensitivity></sensitivity><operator>AND</operator><offsetCooc>0</offsetCooc><cooc></cooc><collection>0</collection><searchOn>all</searchOn><nbResultDisplay>10</nbResultDisplay><nbResultatsParAspect>...
现在,我被要求创建一个PHP页面,在其中我可以设置XML作为输入,并使用提交按钮向RESTWS请求它。我做了一个方法,但似乎不起作用,在这里我粘贴我的代码:
<?php
if($_POST['btnSubmit'] == "Submit")
{
$crudXmlQuery = $_POST['inputXml'];
echo $crudXmlQuery;
echo "=================================================";
$xml = str_replace("%", "%25", $crudXmlQuery);
$xml = str_replace("&", "%26", $crudXmlQuery);
$xml = str_replace("=", "%3D", $crudXmlQuery);
echo $xml;
//$ch = curl_init($url);
//curl_setopt ($ch, CURLOPT_POST, 1);
//curl_setopt ($ch, CURLOPT_POSTFIELDS,'inputXml='.$xml);
//$info = curl_exec ($ch);
//curl_close ($ch);
}
?>
<form action="sampleIndex.php" method="post">
Please insert your XML Query
<input type='text' name='inputXml' value='<?=$crudXmlQuery?>'/>
<input type='submit' name='btnSubmit' value='Submit' />
</form>
我评论了cURL的部分,因为它给了我一些问题,我还不知道如何处理这个要求,如果有人能帮助我,我会非常感激。提前谢谢。顺致敬意,
curl_setopt ($ch, CURLOPT_POSTFIELDS,'inputXml='.$xml);
这是行不通的,你应该先对$xml进行url编码。(使用urlencode函数(
另一部分-不确定到底是什么不起作用:(但我看不到你在代码中的任何地方都使用输入字段的值:
$crudXmlQuery = $_POST['inputXml'];