非标准 XML-RPC C#

non standard XML-RPC C#

你好程序员,

我必须与基于具有以下 XML 结构的 RPC 调用的 API 通信:

0x02<root>
   <dispatch>
      <module>MPAPI_RoomInformation</module>
      <function>getRoomData</function>
      <port>0</port>
      <cache_time>15</cache_time>
      <message_id>190</message_id>
   </dispatch>
   <payload status="OK">
      <root>
         <room>150</room>
      </root>
   </payload>
</root>0x03

它看起来不像是遵循任何 XML-RPC specifications/standards,所以我的问题是 http://www.xml-rpc.net/ or https://grpc.io/ 之类的库是否可以用于与此 API?如果没有你有什么建议吗?

如果没有可用的库,我的理解是 RPC 基本上是 HTTP 请求,在这种情况下,正文就是这个自定义 XML,对吗?

谢谢

my understanding is that RPC is basically HTTP requests with, in this case, the body being this custom XML, is that right?

RPC 可以通过许多不同的方式完成; 可以通过 HTTP 主体,但不一定是这种情况;在您的情况下(查看规范),这是一个原始套接字 API,它使用 start/end 哨兵来“构建”(分隔不同的消息),因此:您需要熟悉以下之一:

  • 原始 Socket API
  • NetworkStreamAPI
  • “管道”API

最后一个在很多方面都是最简单的(因为它处理所有缓冲区细节,包括保留不完整数据的后台缓冲区),但它还没有很好的文档记录。 This 3-and-a-bit series 可能 有帮助,或者您可能更愿意使用较旧的 API 并自己处理这些细节。