直接调用

直接调用,则是不使用任何代理,直接Call RPC,使用比较简单,浏览器也能直接调用实现。

【Url请求】

  1. http://127.0.0.1:7789/Server/Sum?a=10&b=20

【HttpClient调用】
WebApi的客户端和大家所熟识的有一些差距,RRQM的WebApi使用的是先连接后请求的逻辑。请求时,先标记GET/POST的函数。如果是GET,则必须留空URL,如果是POST,则只写URL即可。

  1. private static WebApiClient CreateWebApiClient()
  2. {
  3. WebApiClient client = new WebApiClient();
  4. client.Setup("127.0.0.1:7789");
  5. client.Connect();
  6. Console.WriteLine("连接成功");
  7. return client;
  8. }
  1. var client = CreateWebApiClient();
  2. int sum1 = client.Invoke<int>("GET:/Server/Sum?a={0}&b={1}", null, 10, 20);
  3. Console.WriteLine($"Get调用成功,结果:{sum1}");
  4. int sum2 = client.Invoke<int>("POST:/Server/TestPost", null, new MyClass() { A = 10, B = 20 });
  5. Console.WriteLine($"Post调用成功,结果:{sum2}");

代理调用RPC

代理调用的便捷在于,不用再纠结调用的参数类型正不正确,因为这些,代理工具都会替你做好。

如何生成获取代理文件?

获取代理文件详情

调用

当代理被客户端获取以后,客户端项目中会多出一个RRQMProxy的文件(或者如果是服务器生成的本地代理,则需要复制到客户端项目中),在该文件中,则包含了所有的代理方法代理类,可直接由代理类发起调用。
3、发现、调用服务 - 图1屏幕截图.png

  1. int sum3 = client.TestPost(new MyClass() { A = 10, B = 20 });
  2. Console.WriteLine($"代理调用成功,结果:{sum3}");