hprose DELPHI 调用报错的问题

发布于 2021-11-28 11:42:11 字数 563 浏览 733 评论 10

procedure TForm1.Button2Click(Sender: TObject);
var
  client : THproseIdHttpClient;
begin
  client := THproseIdHttpClient(nil);
  //client.UseService('http://127.0.0.1/helloserver.php');
  client.UseService('http://www.hprose.com/example/');
  showmessage(client.Invoke('hello',['world']));
  client.Free;
end;

--------------------------------

 

 

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(10

平定天下 2021-12-01 08:33:55

服务器端在哪,如何搭建服务器?

拥有 2021-12-01 08:33:53

xe的新特性,不关心; 关心的是 session_start() 这样的函数:还有哪些,什么情况下需要使用它们

怎言笑 2021-12-01 08:33:49

回复
session_start() 这个是 PHP 里面的函数,上面这个问题是 PHP 和 Delphi 通过 hprose 通讯,传递 session 的问题。只要 PHP 服务部分开启了 session,Delphi 客户端会自动处理 session cookie 的。

多彩岁月 2021-12-01 08:33:18

引用来自“andot”的评论

你没有写session_start()

看透却不说透 2021-12-01 08:33:02

引用来自“andot”的评论

你没有写session_start()

千纸鹤带着心事 2021-12-01 08:30:55

你没有写session_start()

风柔一江水 2021-12-01 08:26:27

感觉对HProse 的数据类型的转换不太会应用1

辞别 2021-12-01 08:23:52

做了验证后,DELPHI 验证无效,就提示'getQueryData' 此函数没发布!

一人独醉 2021-12-01 08:18:59

procedure TForm1.Button4Click(Sender: TObject);

var

  HPROSE1: THproseIdHttpClient;

  datas,rows:IList;

  br:boolean;

  i: Integer;

begin

  HPROSE1 := THproseIdHttpClient.Create(nil);

  HPRose1.UseService('http://127.0.0.1/DataInterface.php');

  br := HPRose1.Invoke('check_login',['admin','123']);

  datas := VarToList(HPRose1.Invoke('getQueryData',['user1','where 1=1']));

  for i:=0 to datas.Count-1 do

  begin

    rows :=VarToList(datas[i]);

    Memo1.Lines.Add('----------Line' + IntToStr(i+1) + '----------');

    Memo1.Lines.Add('id   =' + rows[0]);

    Memo1.Lines.Add('name    =' + rows[1]);

    Memo1.Lines.Add('password =' + rows[2]);

  end;

end;

白龙吟 2021-12-01 06:15:57

问题描述:

我想用PHROSE 来做数据传送,用PHP 做服务器,DELPHI 做客户端,定时发请求去取数据。现在是问是,想在发请求时先做个用户验证,结果php,没问题,DELPHI 又有问题了,代码如下. 另外一点,就是HPROSE 的数据类型转换的PPT说明中能分类举例说明一下就跟好。谢谢!

========PHP Server Code ============

<?php
    include("hprose/php5/hproseHttpServer.php");

    $server = new HPRoseHttpServer();
    $server->addFunction('check_login');

    //登陆验证通过后发布
    if (isset($_SESSION["client_authorized"]) && $_SESSION["client_authorized"] == true)
    {
        require_once('./InterFaceFunList.php');
        $server->addFunction('hello');
        $server->addFunction('getQueryData');
    }

    function check_login($username, $password ){
        if (($username == 'admin') && ($password == '123'))
        {
            $_SESSION["client_authorized"] = true;
            $_SESSION['admin'] = 'admin';
            $_SESSION['password'] = '123';
            //$arr = array();
            //$arr['username'] = $username;
            //$arr['password'] = $password;
            return true;
        }
        else
        {
            return false;
        }
    }
    $server->handle();
?>

================================

=======DELPHI client code ============

procedure TForm1.Button4Click(Sender: TObject);

var

  HPROSE1: THproseIdHttpClient;

  datas,rows:IList;

  br:boolean;

  i: Integer;

begin

  HPROSE1 := THproseIdHttpClient.Create(nil);

  HPRose1.UseService('http://127.0.0.1/DataInterface.php');

  br := HPRose1.Invoke('check_login',['admin','123']); //

  datas := VarToList(HPRose1.Invoke('getQueryData',['user1','where 1=1']));

  for i:=0 to datas.Count-1 do //报错 'variant method calls not suppoerted'

  begin

    rows :=VarToList(datas[i]);

    Memo1.Lines.Add('----------Line' + IntToStr(i+1) + '----------');

    Memo1.Lines.Add('id   =' + rows[0]);

    Memo1.Lines.Add('name    =' + rows[1]);

    Memo1.Lines.Add('password =' + rows[2]);

  end;

end;

 

 

 

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文