monica / internal /utils /req_client.go
coo7's picture
Upload 2 files
5f66e0d verified
package utils
import (
"crypto/tls"
"fmt"
"github.com/go-resty/resty/v2"
"time"
)
var (
RestySSEClient = resty.New().
SetTimeout(3 * time.Minute).
SetTLSClientConfig(&tls.Config{InsecureSkipVerify: true}).
SetDoNotParseResponse(true). // 告诉 Resty,不要自动读取/解析 Body,让我们自己来处理流
SetHeaders(map[string]string{
"Content-Type": "application/json",
"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36",
"x-client-locale": "zh_CN", // 可以不传,但默认会返回英文回答
}).
OnAfterResponse(func(c *resty.Client, resp *resty.Response) error {
// 如果不是 200,尝试把 body 打印出来
if resp.StatusCode() != 200 {
return fmt.Errorf("monica API error: status %d, body: %s",
resp.StatusCode(), resp.String())
}
return nil
})
RestyDefaultClient = resty.New().
SetTimeout(time.Second * 30).
SetTLSClientConfig(&tls.Config{InsecureSkipVerify: true}).
SetHeaders(map[string]string{
"Content-Type": "application/json",
"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36",
}).
OnAfterResponse(func(c *resty.Client, resp *resty.Response) error {
// 如果不是 200,尝试把 body 打印出来
if resp.StatusCode() != 200 {
return fmt.Errorf("monica API error: status %d, body: %s",
resp.StatusCode(), resp.String())
}
return nil
})
)