У меня есть сервер Datasnap и есть метод с именем:
function TServerMethodsMain.AddCity( ACity : TJSONObject ) : Boolean ;
Я сделал небольшой PHP-код ниже, чтобы вызвать этот метод.
<code><?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 '
';
?>
Я получил это сообщение об ошибке из браузера (Firefox или IE):
Внимание:
файл (http://192.168.1.101:8088/datasnap/rest/TServerMethodsMain/AddCity/{"id":1,"description":"MY
CITY "," uf ":" XX "}) [function.file]:
не удалось открыть поток: HTTP-запрос
не удалось! Внутренний сервер HTTP / 1.1 500
Ошибка в
C: \ xampp \ htdocs \ json-php \ index.php на
строка 19
Ну, у меня есть другие методы, которые прекрасно работают с этим php-кодом, но только если я передаю их как параметр Примитивные типы : String, Integer ...
Я сделал отладку и вижу, что проблема возникает в тот момент, когда мне нужно преобразовать параметр JSONObject в Объект ( unMarshalll ). Когда я вызываю этот метод на клиенте Delphi Win32, он отлично работает!
Кто-нибудь знает что-нибудь о проблеме?
Спасибо!