Datasnap サーバーがあり、次の名前のメソッドがあります。
function TServerMethodsMain.AddCity( ACity : TJSONObject ) : Boolean ;
このメソッドを呼び出すために、以下の小さな php コードを実行しました。
<?php
class city
{
public $id;
public $description;
public $uf;
}
$objcity = new city ;
$objcity -> id = 1 ;
$objcity -> description = 'MY CITY' ;
$objcity -> uf = 'XX' ;
$url = 'http://192.168.1.101:8088/datasnap/rest/TServerMethodsMain/AddCity/' ;
$url .= json_encode( $objcity ) ;
$page = file($url) ;
$show = json_decode($page[0]);
echo '<pre>';
print_r ($show);
echo '</pre>';
?>
ブラウザ (Firefox または IE) から次のエラー メッセージが表示されました。
警告: file(http://192.168.1.101:8088/datasnap/rest/TServerMethodsMain/AddCity/{"id":1,"description":"MY CITY","uf":"XX"}) [function.ファイル]: ストリームを開けませんでした: HTTP 要求が失敗しました! C:\xampp\htdocs\json-php\index.php の 19 行目の HTTP/1.1 500 内部サーバー エラー
さて、私はこのphpコードで正常に動作する他のメソッドを持っていますが、パラメーターとしてプリミティブ型を渡す場合にのみ:文字列、整数...
デバッグを行ったところ、パラメーターJSONObjectをオブジェクト( unMarshall )に変換する必要がある瞬間に問題が発生することがわかりました。クライアント Delphi Win32 でこのメソッドを呼び出すと、正常に動作します。
誰も問題について何か知っていますか?
ありがとう !