我知道有很多與此問題有關的問題,但我正面臨一個特定的要求,即將數據從PHP發佈到Rest Web Service的目的。上面解釋了細節,但總的來說,當我將數據發佈到url(REST WS)並設置CURLOPT_POSTFIELDS時,數據未被添加到請求中。未設置PHP發佈數據調用Java Rest Web服務
場景:我有很多作爲模塊運行的Java Web服務(REST),例如,我有一個fileUploadModule,它是一個REST,我有一個databaseModule,這是另一個休息,最後是一個SearchModule,它是另一個休息。
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();
}
請我真的很感謝您的幫助或意見。比你提前很多。
你是否試過用curl從命令行?例如 'curl --data「xmlQuery = {xmlquery}」http://192.168.3.41:8013/system.search.ws.module.ModuleSearch/getResults' –
yes,但我沒有可用於終端的命令。 –