fix:裁剪业务逻辑调整
This commit is contained in:
parent
b373b7ed73
commit
2ef3547724
|
@ -1,6 +1,13 @@
|
||||||
package constants
|
package constants
|
||||||
|
|
||||||
const (
|
const (
|
||||||
BLMServiceUrlLogoCombine string = "/LogoCombine"
|
BLMServiceUrlLogoCombine string = "/LogoCombine"
|
||||||
BLMServiceUrlLogoRemovebg string = "/removebg"
|
BLMServiceUrlLogoRemovebg string = "/removebg"
|
||||||
|
BLMServiceUrlLogoFeatureExtraction string = "/FeatureExtraction"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
type BLMServiceUrlResult struct {
|
||||||
|
Code string `json:"code"`
|
||||||
|
Msg string `json:"msg"`
|
||||||
|
Data interface{} `json:"data"`
|
||||||
|
}
|
||||||
|
|
1
go.mod
1
go.mod
|
@ -7,6 +7,7 @@ require (
|
||||||
github.com/SebastiaanKlippert/go-wkhtmltopdf v1.9.0
|
github.com/SebastiaanKlippert/go-wkhtmltopdf v1.9.0
|
||||||
github.com/aws/aws-sdk-go v1.44.295
|
github.com/aws/aws-sdk-go v1.44.295
|
||||||
github.com/bwmarrin/snowflake v0.3.0
|
github.com/bwmarrin/snowflake v0.3.0
|
||||||
|
github.com/go-resty/resty/v2 v2.7.0
|
||||||
github.com/golang-jwt/jwt v3.2.2+incompatible
|
github.com/golang-jwt/jwt v3.2.2+incompatible
|
||||||
github.com/google/uuid v1.3.0
|
github.com/google/uuid v1.3.0
|
||||||
github.com/gorilla/websocket v1.5.0
|
github.com/gorilla/websocket v1.5.0
|
||||||
|
|
3
go.sum
3
go.sum
|
@ -183,6 +183,8 @@ github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre
|
||||||
github.com/go-martini/martini v0.0.0-20170121215854-22fa46961aab/go.mod h1:/P9AEU963A2AYjv4d1V5eVL1CQbEJq6aCNHDDjibzu8=
|
github.com/go-martini/martini v0.0.0-20170121215854-22fa46961aab/go.mod h1:/P9AEU963A2AYjv4d1V5eVL1CQbEJq6aCNHDDjibzu8=
|
||||||
github.com/go-redis/redis/v8 v8.11.5 h1:AcZZR7igkdvfVmQTPnu9WE37LRrO/YrBH5zWyjDC0oI=
|
github.com/go-redis/redis/v8 v8.11.5 h1:AcZZR7igkdvfVmQTPnu9WE37LRrO/YrBH5zWyjDC0oI=
|
||||||
github.com/go-redis/redis/v8 v8.11.5/go.mod h1:gREzHqY1hg6oD9ngVRbLStwAWKhA0FEgq8Jd4h5lpwo=
|
github.com/go-redis/redis/v8 v8.11.5/go.mod h1:gREzHqY1hg6oD9ngVRbLStwAWKhA0FEgq8Jd4h5lpwo=
|
||||||
|
github.com/go-resty/resty/v2 v2.7.0 h1:me+K9p3uhSmXtrBZ4k9jcEAfJmuC8IivWHwaLZwPrFY=
|
||||||
|
github.com/go-resty/resty/v2 v2.7.0/go.mod h1:9PWDzw47qPphMRFfhsyk0NnSgvluHcljSMVIq3w7q0I=
|
||||||
github.com/go-sql-driver/mysql v1.7.0/go.mod h1:OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9S1MCJN5yJMI=
|
github.com/go-sql-driver/mysql v1.7.0/go.mod h1:OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9S1MCJN5yJMI=
|
||||||
github.com/go-sql-driver/mysql v1.7.1 h1:lUIinVbN1DY0xBg0eMOzmmtGoHwWBbvnWubQUrtU8EI=
|
github.com/go-sql-driver/mysql v1.7.1 h1:lUIinVbN1DY0xBg0eMOzmmtGoHwWBbvnWubQUrtU8EI=
|
||||||
github.com/go-sql-driver/mysql v1.7.1/go.mod h1:OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9S1MCJN5yJMI=
|
github.com/go-sql-driver/mysql v1.7.1/go.mod h1:OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9S1MCJN5yJMI=
|
||||||
|
@ -687,6 +689,7 @@ golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v
|
||||||
golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM=
|
golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM=
|
||||||
golang.org/x/net v0.0.0-20210520170846-37e1c6afe023/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
|
golang.org/x/net v0.0.0-20210520170846-37e1c6afe023/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
|
||||||
golang.org/x/net v0.0.0-20211008194852-3b03d305991f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
|
golang.org/x/net v0.0.0-20211008194852-3b03d305991f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
|
||||||
|
golang.org/x/net v0.0.0-20211029224645-99673261e6eb/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
|
||||||
golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
|
golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
|
||||||
golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco=
|
golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco=
|
||||||
golang.org/x/net v0.12.0 h1:cfawfvKITfUsFCeJIHJrbSxpeu/E81khclypR0GVT50=
|
golang.org/x/net v0.12.0 h1:cfawfvKITfUsFCeJIHJrbSxpeu/E81khclypR0GVT50=
|
||||||
|
|
|
@ -10,7 +10,7 @@ type LogoRemovebgReq struct {
|
||||||
LogoFile string `form:"logo_file"`
|
LogoFile string `form:"logo_file"`
|
||||||
Width string `form:"width"`
|
Width string `form:"width"`
|
||||||
Height string `form:"height"`
|
Height string `form:"height"`
|
||||||
Proportion int64 `form:"proportion"`
|
Proportion string `form:"proportion"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type ResourceInfoReq struct {
|
type ResourceInfoReq struct {
|
||||||
|
|
|
@ -17,6 +17,7 @@ AWS:
|
||||||
Secret: sjCEv0JxATnPCxno2KNLm0X8oDc7srUR+4vkYhvm
|
Secret: sjCEv0JxATnPCxno2KNLm0X8oDc7srUR+4vkYhvm
|
||||||
Token:
|
Token:
|
||||||
BLMService:
|
BLMService:
|
||||||
|
Url: "http://18.119.109.254:8999"
|
||||||
ImageProcess:
|
ImageProcess:
|
||||||
# Url: "http://192.168.1.7:8999/FeatureExtraction"
|
# Url: "http://192.168.1.7:8999/FeatureExtraction"
|
||||||
Url: "http://18.119.109.254:8999/FeatureExtraction"
|
Url: "http://18.119.109.254:8999/FeatureExtraction"
|
||||||
|
|
|
@ -22,6 +22,7 @@ type Config struct {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
BLMService struct {
|
BLMService struct {
|
||||||
|
Url string
|
||||||
ImageProcess struct {
|
ImageProcess struct {
|
||||||
Url string
|
Url string
|
||||||
}
|
}
|
||||||
|
|
|
@ -126,6 +126,15 @@ func (l *UploadLogoLogic) UploadLogo(req *types.UploadLogoReq, userinfo *auth.Us
|
||||||
Source: "upload-logo",
|
Source: "upload-logo",
|
||||||
})
|
})
|
||||||
|
|
||||||
|
// 是否去背景
|
||||||
|
if req.IsRemoveBg == 1 {
|
||||||
|
// res, err := l.svcCtx.Repositories.ImageHandle.LogoInfoSet(l.ctx, &repositories.LogoInfoSetReq{})
|
||||||
|
|
||||||
|
// if err != nil {
|
||||||
|
// return resp.SetStatus(basic.CodeServiceErr)
|
||||||
|
// }
|
||||||
|
}
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logx.Error(err)
|
logx.Error(err)
|
||||||
return resp.SetStatus(basic.CodeFileUploadErr, "upload file failed")
|
return resp.SetStatus(basic.CodeFileUploadErr, "upload file failed")
|
||||||
|
|
|
@ -21,9 +21,10 @@ type ServiceContext struct {
|
||||||
Config config.Config
|
Config config.Config
|
||||||
SharedState *shared.SharedState
|
SharedState *shared.SharedState
|
||||||
|
|
||||||
MysqlConn *gorm.DB
|
MysqlConn *gorm.DB
|
||||||
AllModels *gmodel.AllModelsGen
|
AllModels *gmodel.AllModelsGen
|
||||||
AwsSession *session.Session
|
AwsSession *session.Session
|
||||||
|
Repositories *initalize.Repositories
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewServiceContext(c config.Config) *ServiceContext {
|
func NewServiceContext(c config.Config) *ServiceContext {
|
||||||
|
@ -39,6 +40,11 @@ func NewServiceContext(c config.Config) *ServiceContext {
|
||||||
MysqlConn: initalize.InitMysql(c.SourceMysql),
|
MysqlConn: initalize.InitMysql(c.SourceMysql),
|
||||||
AllModels: gmodel.NewAllModels(initalize.InitMysql(c.SourceMysql)),
|
AllModels: gmodel.NewAllModels(initalize.InitMysql(c.SourceMysql)),
|
||||||
AwsSession: session.Must(session.NewSession(&config)),
|
AwsSession: session.Must(session.NewSession(&config)),
|
||||||
|
Repositories: initalize.NewAllRepositories(&initalize.NewAllRepositorieData{
|
||||||
|
GormDB: initalize.InitMysql(c.SourceMysql),
|
||||||
|
BLMServiceUrl: &c.BLMService.Url,
|
||||||
|
AwsSession: session.Must(session.NewSession(&config)),
|
||||||
|
}),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -26,7 +26,7 @@ type (
|
||||||
LogoFile string `form:"logo_file"`
|
LogoFile string `form:"logo_file"`
|
||||||
Width string `form:"width"`
|
Width string `form:"width"`
|
||||||
Height string `form:"height"`
|
Height string `form:"height"`
|
||||||
Proportion int64 `form:"proportion"`
|
Proportion string `form:"proportion"`
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
@ -35,6 +35,8 @@ type (
|
||||||
}
|
}
|
||||||
|
|
||||||
ImageHandle = interface {
|
ImageHandle = interface {
|
||||||
|
// logo信息
|
||||||
|
LogoInfoSet(ctx context.Context, in *LogoInfoSetReq) (*LogoInfoSetRes, error)
|
||||||
|
|
||||||
// logo合图
|
// logo合图
|
||||||
LogoCombine(ctx context.Context, in *LogoCombineReq) (*LogoCombineRes, error)
|
LogoCombine(ctx context.Context, in *LogoCombineReq) (*LogoCombineRes, error)
|
||||||
|
@ -44,6 +46,32 @@ type (
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
/* logo信息 */
|
||||||
|
type (
|
||||||
|
LogoInfoSetReq struct {
|
||||||
|
LogoUrl string `json:"logo_url"`
|
||||||
|
}
|
||||||
|
LogoInfoSetRes struct{}
|
||||||
|
)
|
||||||
|
|
||||||
|
func (l *defaultImageHandle) LogoInfoSet(ctx context.Context, in *LogoInfoSetReq) (*LogoInfoSetRes, error) {
|
||||||
|
var resultBLM constants.BLMServiceUrlResult
|
||||||
|
postMap := make(map[string]string, 1)
|
||||||
|
postMap["logo_url"] = in.LogoUrl
|
||||||
|
|
||||||
|
_, err := curl.NewClient(ctx, &curl.Config{
|
||||||
|
BaseUrl: *l.BLMServiceUrl,
|
||||||
|
Url: constants.BLMServiceUrlLogoCombine,
|
||||||
|
}).PostForm(postMap, &resultBLM)
|
||||||
|
if err != nil {
|
||||||
|
logx.Error(err)
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return nil, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
/* logo信息 */
|
||||||
|
|
||||||
/* logo合图 */
|
/* logo合图 */
|
||||||
type (
|
type (
|
||||||
LogoCombineReq struct {
|
LogoCombineReq struct {
|
||||||
|
@ -249,7 +277,7 @@ type (
|
||||||
LogoFile string `json:"logo_file"`
|
LogoFile string `json:"logo_file"`
|
||||||
Width string `json:"width"`
|
Width string `json:"width"`
|
||||||
Height string `json:"height"`
|
Height string `json:"height"`
|
||||||
Proportion int64 `json:"proportion"`
|
Proportion string `json:"proportion"`
|
||||||
}
|
}
|
||||||
LogoStandardRes struct {
|
LogoStandardRes struct {
|
||||||
ResourceId string
|
ResourceId string
|
||||||
|
@ -299,53 +327,24 @@ func (l *defaultImageHandle) LogoStandard(ctx context.Context, in *LogoStandardR
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var resultBLM constants.BLMServiceUrlResult
|
||||||
var postMap = make(map[string]interface{}, 5)
|
var postMap = make(map[string]interface{}, 5)
|
||||||
postMap["is_remove_bg"] = in.IsRemoveBg
|
postMap["is_remove_bg"] = in.IsRemoveBg
|
||||||
postMap["logo_file"] = in.LogoFile
|
postMap["logo_file"] = in.LogoFile
|
||||||
postMap["width"] = in.Width
|
postMap["width"] = in.Width
|
||||||
postMap["height"] = in.Height
|
postMap["height"] = in.Height
|
||||||
postMap["proportion"] = in.Proportion
|
postMap["proportion"] = in.Proportion
|
||||||
postMapB, _ := json.Marshal(postMap)
|
|
||||||
|
|
||||||
var headerData = make(map[string]string, 1)
|
err = curl.NewClient(ctx, &curl.Config{
|
||||||
headerData["Content-Type"] = "application/json"
|
BaseUrl: *l.BLMServiceUrl,
|
||||||
result, err := curl.ApiCall(*l.BLMServiceUrl+constants.BLMServiceUrlLogoRemovebg, "POST", headerData, strings.NewReader(string(postMapB)), time.Minute*5)
|
Url: constants.BLMServiceUrlLogoRemovebg,
|
||||||
|
}).PostJson(postMap, &resultBLM)
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logx.Error(err)
|
logx.Error(err)
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
defer result.Body.Close()
|
var resultStr string = resultBLM.Data.(string)
|
||||||
b, err := io.ReadAll(result.Body)
|
|
||||||
if err != nil {
|
|
||||||
logx.Error(err)
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
var resultStr string
|
|
||||||
if string(b) == "Internal Server Error" {
|
|
||||||
err = errors.New("BLMService fail Internal Server Error")
|
|
||||||
logx.Error(err)
|
|
||||||
return nil, err
|
|
||||||
} else {
|
|
||||||
var resData map[string]interface{}
|
|
||||||
err = json.Unmarshal(b, &resData)
|
|
||||||
if err != nil || resData == nil {
|
|
||||||
logx.Error(err)
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
if resData != nil {
|
|
||||||
if resData["code"].(string) == "200" {
|
|
||||||
resultStr = resData["data"].(string)
|
|
||||||
} else {
|
|
||||||
logx.Error(err)
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
logx.Error(err)
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
var resultData map[string]interface{}
|
var resultData map[string]interface{}
|
||||||
err = json.Unmarshal([]byte(resultStr), &resultData)
|
err = json.Unmarshal([]byte(resultStr), &resultData)
|
||||||
if err != nil || resultData == nil {
|
if err != nil || resultData == nil {
|
||||||
|
@ -353,8 +352,6 @@ func (l *defaultImageHandle) LogoStandard(ctx context.Context, in *LogoStandardR
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
//$removeBg ='{"nobg_url": "/test/dIE10gGfXM_scale.png", "thumbnail_url": "/test/dIE10gGfXM_thumbnail.png", "ismax_proportion": true, "img_color": ["#000000", "#EEF5FB", "#6AAFE6", "#9ECDF1", "#298EDC", "#0C7BD1"]}'
|
|
||||||
|
|
||||||
var fileBase = resultData["nobg_url"].(string)
|
var fileBase = resultData["nobg_url"].(string)
|
||||||
ismaxProportion = resultData["ismax_proportion"].(bool)
|
ismaxProportion = resultData["ismax_proportion"].(bool)
|
||||||
|
|
||||||
|
|
144
utils/curl/client_resty.go
Normal file
144
utils/curl/client_resty.go
Normal file
|
@ -0,0 +1,144 @@
|
||||||
|
package curl
|
||||||
|
|
||||||
|
import (
|
||||||
|
"bytes"
|
||||||
|
"context"
|
||||||
|
"errors"
|
||||||
|
"time"
|
||||||
|
|
||||||
|
"github.com/go-resty/resty/v2"
|
||||||
|
"github.com/zeromicro/go-zero/core/logc"
|
||||||
|
"github.com/zeromicro/go-zero/core/logx"
|
||||||
|
)
|
||||||
|
|
||||||
|
func NewClient(ctx context.Context, c *Config) Client {
|
||||||
|
// 创建一个restry客户端
|
||||||
|
client := resty.New().SetBaseURL(c.BaseUrl)
|
||||||
|
|
||||||
|
// 设置超时时间为 5 分钟
|
||||||
|
client.SetTimeout(5 * time.Minute)
|
||||||
|
|
||||||
|
if c.HeaderData != nil {
|
||||||
|
for k, v := range c.HeaderData {
|
||||||
|
client = client.SetHeader(k, v)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if c.RetryCount > 0 {
|
||||||
|
client = client.SetRetryCount(int(c.RetryCount))
|
||||||
|
}
|
||||||
|
|
||||||
|
if c.RetryWaitTime > 0 {
|
||||||
|
client = client.SetRetryWaitTime(time.Duration(c.RetryWaitTime) * time.Second)
|
||||||
|
}
|
||||||
|
|
||||||
|
return &defaultClient{
|
||||||
|
client: client,
|
||||||
|
c: c,
|
||||||
|
ctx: ctx,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
type (
|
||||||
|
Config struct {
|
||||||
|
BaseUrl string `json:"base_url"`
|
||||||
|
Url string `json:"url"`
|
||||||
|
HeaderData map[string]string `json:"header_data"`
|
||||||
|
RetryCount int64 `json:"retry_count"`
|
||||||
|
RetryWaitTime int64 `json:"retry_wait_time"`
|
||||||
|
}
|
||||||
|
defaultClient struct {
|
||||||
|
c *Config
|
||||||
|
client *resty.Client
|
||||||
|
ctx context.Context
|
||||||
|
}
|
||||||
|
|
||||||
|
Client = interface {
|
||||||
|
// PostJson请求
|
||||||
|
PostJson(jsonData interface{}, res interface{}) error
|
||||||
|
// PostForm请求
|
||||||
|
PostForm(formData map[string]string, res interface{}) (interface{}, error)
|
||||||
|
// 上传文件
|
||||||
|
PostFile(fileParam string, fileName string, res interface{}, profileBytes []byte, formData map[string]string) (interface{}, error)
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
// PostJson请求
|
||||||
|
func (c *defaultClient) PostJson(jsonData interface{}, res interface{}) error {
|
||||||
|
logc.Infof(c.ctx, "客户端名称 Client PostJson jsonData:%+v", jsonData)
|
||||||
|
|
||||||
|
logc.Infof(c.ctx, "客户端名称 请求开始时间:%+v", time.Now().UTC())
|
||||||
|
resp, err := c.client.
|
||||||
|
SetHeader("Accept", "application/json").
|
||||||
|
SetHeader("Content-Type", "application/json").
|
||||||
|
R().
|
||||||
|
SetContext(c.ctx).
|
||||||
|
SetResult(res).
|
||||||
|
SetBody(jsonData).
|
||||||
|
Post(c.c.Url)
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
logc.Errorf(c.ctx, "客户端 请求失败 Client PostForm error:%+v", err)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
logc.Infof(c.ctx, "客户端名称 请求结束时间:%+v", time.Now().UTC())
|
||||||
|
|
||||||
|
logc.Infof(c.ctx, "客户端 请求返回结果 Client PostForm RawResponse result:%+v,%+V", resp.RawResponse.Status, resp.RawResponse.StatusCode)
|
||||||
|
|
||||||
|
//logc.Infof(c.ctx, "客户端 请求返回结果 Client PostForm res result:%+v", res)
|
||||||
|
if resp.StatusCode() != 200 {
|
||||||
|
err = errors.New("服务端失败")
|
||||||
|
logx.Errorf("客户端 请求失败 Client PostForm Server error:%+v", err)
|
||||||
|
}
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
// PostForm请求
|
||||||
|
func (c *defaultClient) PostForm(formData map[string]string, res interface{}) (interface{}, error) {
|
||||||
|
resp, err := c.client.
|
||||||
|
SetHeader("Accept", "application/json").
|
||||||
|
SetHeader("Content-Type", "multipart/form-data").
|
||||||
|
R().
|
||||||
|
SetContext(c.ctx).
|
||||||
|
SetResult(res).
|
||||||
|
SetFormData(formData).
|
||||||
|
Post(c.c.Url)
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
logc.Errorf(c.ctx, "客户端 请求失败 Client PostForm error:%+v", err)
|
||||||
|
return res, err
|
||||||
|
}
|
||||||
|
logc.Infof(c.ctx, "客户端 请求返回结果 Client PostForm RawResponse result:%+v,%+V", resp.RawResponse.Status, resp.RawResponse.StatusCode)
|
||||||
|
logc.Infof(c.ctx, "客户端 请求返回结果 Client PostForm res result:%+v", res)
|
||||||
|
if resp.StatusCode() != 200 {
|
||||||
|
err = errors.New("服务端失败")
|
||||||
|
logx.Errorf("客户端 请求失败 Client PostForm Server error:%+v", err)
|
||||||
|
}
|
||||||
|
return res, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// 上传文件
|
||||||
|
func (c *defaultClient) PostFile(fileParam string, fileName string, res interface{}, profileBytes []byte, formData map[string]string) (interface{}, error) {
|
||||||
|
|
||||||
|
resp, err := c.client.
|
||||||
|
SetHeader("Accept", "application/json").
|
||||||
|
SetHeader("Content-Type", "multipart/form-data").
|
||||||
|
R().
|
||||||
|
SetContext(c.ctx).
|
||||||
|
SetResult(res).
|
||||||
|
SetFileReader(fileParam, fileName, bytes.NewReader(profileBytes)).
|
||||||
|
SetFormData(formData).
|
||||||
|
Post(c.c.Url)
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
logc.Errorf(c.ctx, "客户端 请求失败 Client PostFile error:%+v", err)
|
||||||
|
return res, err
|
||||||
|
}
|
||||||
|
logc.Infof(c.ctx, "客户端 请求返回结果 Client PostFile RawResponse result:%+v,%+V", resp.RawResponse.Status, resp.RawResponse.StatusCode)
|
||||||
|
logc.Infof(c.ctx, "客户端 请求返回结果 Client PostFile res result:%+v", res)
|
||||||
|
if resp.StatusCode() != 200 {
|
||||||
|
err = errors.New("服务端失败")
|
||||||
|
logx.Errorf("客户端 请求失败 Client PostFile Server error:%+v", err)
|
||||||
|
}
|
||||||
|
return res, err
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user