报错信息
{"file":"/cmd/channel/xxx/prepay.go","level":"error","line":220,"msg":"xxx.DoPrepayGRPC error: xxx2Client.CreateOrder: rpc error: code = Unavailable desc = connection error: desc = \"transport: Error while dialing dial tcp: address http://127.0.0.1:11281: too many colons in address\"","pid":60118,"requestid":"2_1615862181_5","sdkid":"xxx_global","time":"2021-03-16T10:36:21+08:00"}
错误关键字:too many colons in address
原因
我碰到的原因是因为grpc客户端用的接口要使用服务器ip或域名,不是URL,不需要加协议前缀。
同时也不需要path,是因为已经通过协议封装,协议里面有service和interface的信息,序列化了,不需要通过path来分发到具体的接口,但是通过在代码中带一个参数mehod,如method="/server/add",然后程序通过 if method==xxx判断走什么逻辑。
解决方案
需要把"http://"去掉。 直接是127.0.0.1:11281
如果你在其他地方碰到同一个报错也可以尝试这个方法是否有效。