xmlrpc サーバーから、cron ジョブを使用して再帰的に呼び出されているコントローラー メソッドにパラメーター値を渡す際に問題が発生しています。私のxml rpcサーバーメソッド:
function update_p($request) {
$parameters = $request->output_parameters();
$_GET["portfolio"] = $parameters['0']["portfolio"];
$_GET["filter"] = $parameters['0']["filter"];
$_GET["sort"] = $parameters['0']["sort"];
$_GET["first"] = $parameters['0']["first"];
$_GET["watch"] = $parameters['0']["watch"];
redirect("controllerClass/update_p");
return 1;
}
これらすべてのパラメーターポートフォリオ、フィルターなどを渡したいメソッドを持つコントローラークラス:
public function update_p() { $loginid = $this->session->userdata('loginid'); if(!isset($loginid)){ 死ぬ; }
error_reporting(E_ERROR); if (time()>$this->session->userdata('expire'))
{ redirect("/dashboard/logout?expired=Y","location",401); 死ぬ; }
$out=''; $request="USER ".$loginid.($this->session->userdata('isMobile')?"@mobile":"")."\n"; if(isset($_GET["portfolio"])) { $portfolio=trim($_GET["portfolio"]); $request.='ECHO "LISTP":'."\nLISTP0 #".$portfolio; if(isset($_GET["filter"])) { $filter=trim($_GET["filter"]); $request.=" -".$filter; } if(isset($_GET["sort"])) { $sort=trim($_GET["sort"]); if ($sort>=1024) $request.=" -s".($sort&1023); else $request.=" -S".$sort; } $ph = isset($_GET["first"]); if ($ph) { $this->load->model('modelmethod'); $resultArray = $this->modelmethod->getData($this->session->userdata('loginid'),$this->session->userdata('isMobile')?'mobile':'default','listp'); $request.=" ".$resultArray[0]['listp']; } $request.="\nECHO ,\n"; if(isset($_GET["watch"])) { $portfolio=trim($_GET["watch"]); if ($ph) $resultArray = $this->modelmethod->getData($this->session->userdata('loginid'),$this->session->userdata('isMobile')?'mobile':'default','watch'); $request.='ECHO "watchl":'."\nLISTP1 #".$portfolio." -WL ".($ph?$resultArray[0]['watch']:"")."\n"; $request.='ECHO ,"watchs":'."\nLISTP1 #".$portfolio." -WS\nECHO ,\n"; } } $request.="RISk\nECHO ,\nPnL\n"; if ($result=$this->getData($request."BYE\n")) { if (result!='') $out=$result."\n"; } ob_start('ob_gzhandler'); echo "{".$out."}"; ob_end_flush(); }
私はこのコードを使用してfirbugコンソールを使用してテストしようとしています:
var xhr = new XMLHttpRequest();
xhr.open("GET", "http://example/api/v1/update_p?");
xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhr.send("portfolio=0&filter=A&sort=1&first=Y");
どんな助けでも大歓迎ですありがとう。