diff --git a/go.mod b/go.mod index 6325314..ce6a32a 100644 --- a/go.mod +++ b/go.mod @@ -12,6 +12,7 @@ require ( ) require ( + gitea.cdlsxd.cn/self-tools/l_request v1.0.8 // indirect golang.org/x/net v0.35.0 // indirect golang.org/x/sys v0.30.0 // indirect golang.org/x/text v0.22.0 // indirect diff --git a/paramset.go b/paramset.go index 34b1881..7a46f5a 100644 --- a/paramset.go +++ b/paramset.go @@ -4,12 +4,14 @@ import ( "context" "encoding/json" "fmt" - "gitea.cdlsxd.cn/rzy_tools/request" - "gitea.cdlsxd.cn/self-tools/l_msg_api/cache" - "gitea.cdlsxd.cn/self-tools/l_msg_api/httpclient" "reflect" "strings" "time" + + "gitea.cdlsxd.cn/rzy_tools/request" + "gitea.cdlsxd.cn/self-tools/l_msg_api/cache" + "gitea.cdlsxd.cn/self-tools/l_msg_api/httpclient" + "gitea.cdlsxd.cn/self-tools/l_request" ) func (m *MessageCenter) parseOACreateParam(formModel *FormsData) (out []byte) { @@ -64,7 +66,7 @@ func (m *MessageCenter) send(ctx context.Context, path requestPathIndex, data [] //return m.rpc(ctx, requestAddr, data, resReflect) default: requestAddr := requestPath[path][Http] - return m.post(ctx, requestAddr, data, resReflect) + return m.postHttp(ctx, requestAddr, data, resReflect) } return } @@ -100,6 +102,36 @@ func (m *MessageCenter) post(ctx context.Context, path string, data []byte, resR return } +func (m *MessageCenter) postHttp(ctx context.Context, path string, data []byte, resReflect interface{}) (err error) { + var body responseBody + + req := l_request.Request{ + Url: fmt.Sprintf("%s%s", m.Host, path), + Method: "POST", + Headers: m.header, + JsonByte: data, + } + res, err := req.Send() + if err != nil { + return + } + if err = json.Unmarshal(res.Content, &body); err != nil { + return fmt.Errorf("请求失败:%s", string(res.Content)) + } + if body.Code != 0 { + return fmt.Errorf("请求失败:%s", body.Msg) + } + dataByte, err := json.Marshal(body.Data) + if err != nil { + return fmt.Errorf("未知的返回格式:%s", string(dataByte)) + } + if err = json.Unmarshal(dataByte, resReflect); err != nil { + return fmt.Errorf("未知的返回格式:%s", string(dataByte)) + } + + return +} + func (m *MessageCenter) OtherSend(ctx context.Context, request *request.Request) (res request.Response, err error) { res, err = request.Send() return