调用Java Rest Web服务时未设置PHP post数据

调用Java Rest Web服务时未设置PHP post数据,java,php,rest,curl,Java,Php,Rest,Curl,我知道与这个问题相关的问题很多,但是我面临着一个特殊的需求,即将数据从PHP发布到RESTWeb服务。上面解释了详细信息,但总而言之,当我将数据发布到url(REST WS)并设置CURLOPT_POSTFIELDS时,数据不会添加到请求中 场景:我有很多Java Web服务(REST)作为模块运行,例如,我有一个fileUploadModule,它是一个REST,我有一个databaseModule,它是另一个REST,最后是一个SearchModule,它是另一个REST 我可以使用如下链接

我知道与这个问题相关的问题很多,但是我面临着一个特殊的需求,即将数据从PHP发布到RESTWeb服务。上面解释了详细信息,但总而言之,当我将数据发布到url(REST WS)并设置CURLOPT_POSTFIELDS时,数据不会添加到请求中

场景:我有很多Java Web服务(REST)作为模块运行,例如,我有一个fileUploadModule,它是一个REST,我有一个databaseModule,它是另一个REST,最后是一个SearchModule,它是另一个REST

我可以使用如下链接直接调用rest模块:

http://[MY IP]:8020/system.file.ws.module.ModuleFile/getResults/jsonp?fileName=fileName
http://[MY IP]:8021/system.search.ws.module.ModuleSearch/getResults/jsonp?xmlQuery=myXml
对于文件和数据库,在我之前管理代码的程序员使用通过代理连接到模块的gwt;例如:

http://[MY_PROXY_IP]:8013/system.file.ws.module.ModuleFile/getResults/jsonp?fileName=fileName
在我的代理中,我可以打印收到的请求的值,在这种情况下,我使用GET,我可以将请求打印为:

GET /system.file.ws.module.ModuleFile/getResults/jsonp?fileName=idc1&folderType=campaign&callback=__gwt_jsonp__.P0.onSuccess&failureCallback=__gwt_jsonp__.P0.onFailure HTTP/1.1
。现在我负责通过PHP运行的搜索。我直接测试了模块的url,它可以工作,但如果我尝试通过代理访问它,它似乎不工作,它会到达我的代理,但当我打印请求时,它是不完整的:

POST /system.search.ws.module.ModuleSearch/getResults HTTP/1.1
我应该会收到模块文件之类的东西,我分享我的php代码,一切似乎都很好,但我不知道我会做错什么。。。在CURLOPT_POSTFIELDS中设置参数时,未设置字符串

 $url = "http://192.168.3.41:8013/system.search.ws.module.ModuleSearch/getResults"; 
try {
$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_POST, 1);
$rawXml = $_POST['rawXml'];
$rawXml = str_replace("%", "%25", $rawXml);
$rawXml = str_replace("&", "%26", $rawXml);
$rawXml = str_replace("=", "%3D", $rawXml);
echo $rawXml;   
curl_setopt ($ch, CURLOPT_POSTFIELDS,'xmlQuery='.$rawXml);
$info = curl_exec ($ch);
curl_close ($ch);
echo $info;
} catch (Exception $e){
 echo $e->getMessage(); 
}

请允许我非常感谢您的帮助或观察。比你提前了很多时间。

过了很长时间,我看到了这个,却没有回答。我不久前发现了这个失败。出现此问题的原因是,当到达服务器端时,出于某种原因,我没有看到的批处理文件正在向我的内容添加一行额外的内容,每当我使用代理读取请求内容时,我都使用“\n”分隔符,我的意思是,我一直在读取我的数据,并将其用作EOF指示符一个换行,这就是为什么从未显示内容的原因。我必须修改代理中的代码,以允许读取请求直到结束,而不是在查找“\n”字符时。我的意思是,每种情况下都会设置帖子的内容,但批处理过程会破坏这些数据。这就是问题所在,我只是通过确保我的读者始终阅读我的整个文件来解决它,即使考虑到换行和白线


注意。

您是否从命令行使用curl进行了尝试?e、 g.
curl——数据“xmlQuery={xmlQuery}”http://192.168.3.41:8013/system.search.ws.module.ModuleSearch/getResults
是,但我没有终端可用的命令。