CakePHPでグーグルグループが答えを得られなかったので、ここでこの質問をします。私は次のパイプラインを持っています:CakePHPベースのアプリケーションがあります。それはsave_resultsと呼ばれるアクションを持つコントローラーを持っています。アクションは3つの引数を受け入れるメソッドであるため、次のようになります。
function save_results($data,$rawdataset,$status){
///stub///
return "all the data received";
}
CakePHPアプリのほかに、AMF形式を使用してFlashアプリケーションと通信するために使用するWebOrb(PHP)があります。FlashアプリケーションはデータをWebOrbサービスに送信し、WebOrbサービスは上記のCakeで説明したアクションに送信します。Flashアプリから受信します。私がケーキメソッド(save_results)に渡すパラメータに一致する3つのオブジェクト:オブジェクトの配列型のデータ。rawdataset-xmlオブジェクトを含む文字列型。status-unsigned integer 0または1。WebOrbサービスでは、Flashから受信したデータは問題ありません。しかし、CakePHPにさらに送信しようとすると、データは通過しません。私はこのようにします(WebOrbクラスで):
public function sendToCake($data,$rawdataset,$status){
$encodedData=urlencode($data);
$encodedRawData=urlencode($rawdataset);
$destinationURL="http://localhost/mycakeapp/resultscontroller/save_results /".$encodedData."/". $encodedRawData."/".$status;
return file_get_contents( $destinationURL);
}
ケーキのurlに渡されたパラメーターは文字間にスペースを入れることができないことがわかりました。したがって、urlencode()を使用します。これは「Helloworld」のような単純な文字列で機能します。しかし、xml文字列($ rawdatasetオブジェクト)のようなより複雑な文字列を渡すとケーキはそのような呼び出しを受け取りません。rawurlencode()も試しましたが、それでも結果がありません。ケーキがhttp呼び出しを介して渡されたときにxml構造化文字列を処理する方法を知らない可能性はありますか?この問題に関するヘルプやアドバイスは大歓迎です。