我有一个 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)收到此错误消息:
警告:文件(http://192.168.1.101:8088/datasnap/rest/TServerMethodsMain/AddCity/{"id":1,"description":"MY CITY","uf":"XX"}) [function.文件]:打开流失败:HTTP 请求失败!第 19 行 C:\xampp\htdocs\json-php\index.php 中的 HTTP/1.1 500 内部服务器错误
好吧,我有其他方法可以很好地处理这个 php 代码,但前提是我作为参数传递原始类型:字符串、整数......
我进行了调试,发现问题发生在我需要将参数JSONObject转换为Object ( unMarshallll ) 的时候。当我通过客户端 Delphi Win32 调用此方法时,它工作正常!
有人知道这个问题吗?
谢谢 !