今天在看 dubbo http 协议的时候,发现它是使用 jsonrpc 实现的. 当时就在想能否基于 httpclient 实现了?
答案是肯定的。
做法如下:
1.需要为接口实现一个代理类,在代理类中发起 http 请求
2.在发送 http 请求的时候,需要把方法名,参数序列化,放入到 request 的 header 中(我是这么干的)
3.在服务端从 header 中获取方法名和参数,通过反射执行方法,并把结果放入到 response 中
4.客户端接收结果,并将结果转换为对应的类型