代码拉取完成,页面将自动刷新
package cRpc
import (
"encoding/json"
"gitee.com/csingo/cCommon"
"gitee.com/csingo/cHTTPClient"
"gitee.com/csingo/cLog"
"github.com/gin-gonic/gin"
)
func Call(ctx *gin.Context, client RpcClientInterface, method string, req, rsp interface{}) (err error) {
app, service := client.RpcClientName()
host := clientContainer.GetHost(app, service)
uri := selfRpcConf.RequestURI
if uri == "" {
uri = "/rpc/call"
}
data, err := json.Marshal(req)
if err != nil {
cLog.WithContext(ctx, map[string]interface{}{
"source": "cRpc.Call:json.Marshal",
"req": req,
"err": err,
}).Error("rpc 请求参数格式化异常")
return
}
var body []byte
option := cHTTPClient.Option{
Host: host,
Uri: uri,
Method: cHTTPClient.MethodPOST,
Headers: map[string]string{
"Content-Type": "application/json",
"X-Trace-Id": ctx.GetString(cCommon.XIndex_TraceId),
"Rpc-App": app,
"Rpc-Service": service,
"Rpc-Method": method,
},
Query: nil,
Data: string(data),
}
_, body, err = cHTTPClient.Request(option)
cLog.WithContext(ctx, map[string]interface{}{
"source": "cRpc.Call:cHTTPClient.Request",
"option": option,
}).Debug("发起 rpc 请求")
if err != nil {
cLog.WithContext(ctx, map[string]interface{}{
"source": "cRpc.Call:cHTTPClient.Request",
"body": body,
"err": err,
}).Error("rpc 请求结果获取异常")
return
}
err = json.Unmarshal(body, rsp)
if err != nil {
cLog.WithContext(ctx, map[string]interface{}{
"source": "cPrc.Call: json.Unmarshal",
"err": err,
}).Error("rpc 请求结果 json 解析异常")
}
return
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。