在这里问这个问题是因为在 CakePHP google group 中没有得到答案。我有以下管道:有一个基于 CakePHP 的应用程序。它有一个控制器,带有一个名为 save_results 的操作。该操作是一个接受 3 个参数的方法。所以它看起来像这样:
function save_results($data,$rawdataset,$status){
///stub///
return "all the data received";
}
除了 CakePHP 应用程序之外,我还有一个 WebOrb(PHP),我用它来使用 AMF 格式与 Flash 应用程序通信。Flash 应用程序将数据发送到 WebOrb 服务,然后将其发送到我在 Cake 中描述的操作。所以我从 Flash 应用程序接收3 个对象来匹配我传递给 cake 方法 (save_results) 的参数:数据类型的对象数组。rawdataset-of 类型的字符串,包含 xml 对象。状态无符号整数 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()。它适用于像“Hello world”这样的简单字符串。但是一旦我传递了更复杂的字符串,比如 xml 字符串($rawdataset 对象)蛋糕没有收到这样的电话。我也尝试了rawurlencode()但仍然没有结果。蛋糕是否有可能在通过http调用传递时不知道如何处理xml结构化字符串?对此问题的任何帮助或建议将不胜感激。