go - 使用 JSON-RPC 调用传递身份验证详细信息
问题描述
我还没有找到任何关于此的文档。我需要对需要传递(基本)身份验证详细信息的 API 进行 JSON-RPC 调用,但找不到使用标准net/rpc/jsonrpc
包执行此操作的任何方法。下面是我的非身份验证代码的剪辑版本。
var reply string
netClient, _ = net.Dial("tcp", "localhost:1234")
jsonClient = jsonrpc.NewClient(netClient)
jsonClient.Call("someMethod", someArgs, &reply)
解决方案
Basic-Auth 是一个 HTTP 概念。您的代码正在打开一个“原始” TCP 连接到localhost:1234
. 您需要的是下面的 HTTP 传输层。
有两种方法可以实现你想要的:要么实现一个 HTTP-speakingio.ReadWriteCloser
并在你的示例中使用,要么实现一个执行rpc.ClientCodec
HTTP 基本身份验证并与rpc.NewClientWithCodec
.
推荐阅读
- docker - GitLab 私有注册表 - 登录错误
- python - 试图在该等式中求解 B
- matlab - 将图像从矢状视图转换为横向视图matlab
- python - 将用户输入拆分为越来越大的列表 [python]
- sql-server - 无法在 SQL Select 中向 DATEOFFSET(2) 添加时间
- bash - 在 Docker 构建期间从文本文件中提取变量
- amazon-web-services - 在 terraform(aws 提供程序)中创建接口类型 vpc 端点时出错
- firebase - 如何告诉 Firestore 使用 Node Admin SDK 返回 Timestamp 对象?
- android - 将 firebase 库更新到 16.0.0 会引发 google play services 依赖问题
- c++ - Libnoise 不想编译:找不到 -lnoise