この問題に関連して多くの質問があることは承知していますが、PHP から Rest Web サービスにデータを送信するという目的のために、特定の要件に直面しています。詳細は上記で説明しましたが、要約すると、データを URL (REST WS) に投稿し、CURLOPT_POSTFIELDS を設定すると、データが要求に追加されません。
シナリオ: モジュールとして実行されている多くの Java Web サービス (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();
}
どうぞよろしくお願いいたします。よろしくお願いします。