使用PHP调用URL并将参数作为POST发送

使用PHP调用URL并将参数作为POST发送,php,xml,rest,jsonp,Php,Xml,Rest,Jsonp,我知道这可能是一个非常愚蠢的问题,但我面临着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%221653

我知道这可能是一个非常愚蠢的问题,但我面临着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!...
但为此,我必须使用Java util类替换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>...
avoirAND00all10。。。
现在,我被要求创建一个PHP页面,在该页面中,我可以将XML设置为输入,并使用submit按钮将其请求给REST WS。我采取了一种方法,但似乎不起作用,在这里我粘贴了我的代码:

<?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>

请插入您的XML查询
我评论了卷曲部分,因为它给了我一些问题,我还不知道如何处理这个要求,如果有人能帮助我,我将非常感谢。提前谢谢。致以最良好的祝愿

curl_setopt ($ch, CURLOPT_POSTFIELDS,'inputXml='.$xml);
这是行不通的,您应该先对url编码$xml。(使用urlencode函数)

另一部分-不确定到底是什么不起作用:)但我看不到您在代码中的任何地方使用输入字段的值:

$crudXmlQuery = $_POST['inputXml'];

是的,当从编辑器复制粘贴时,我错过了那一行,但我采用了您提到的值,但是当我执行“此的回音”时它显示的是奇怪的字符,而不是我放在文本字段中的xml。你能复制粘贴这些奇怪的字符吗?这些是我执行echo时打印的字符:avoirAND00all10580date0082.122.169.2440false3.0.51tcbet30]INDI解决了这个问题,对不起,我在php中仍然很笨。感谢您的回复,它帮助我发现了mi的错误。谢谢