This commit is contained in:
Zheng Kai
2023-03-31 11:34:20 +08:00
parent 8e72c62281
commit a0fe0b26ee
7 changed files with 109 additions and 26 deletions

View File

@@ -2,22 +2,22 @@ package core
import (
"bytes"
"fmt"
"io"
"net/http"
"net/url"
"project/config"
"project/pb"
"project/zj"
"project/util"
"time"
)
func fetchRemote(r *pb.Req) (ab []byte, err error) {
func (pr *row) fetchRemote() (ab []byte, ok bool, err error) {
u, err := url.Parse(config.RemoteAPI)
if err != nil {
zj.W(`url fail`, config.RemoteAPI, err)
return
}
r := pr.req
var b bytes.Buffer
pr.failLog = &b
u, _ := url.Parse(config.OpenAIBase)
u.Path = r.Path
req, err := http.NewRequest(r.Method, u.String(), bytes.NewReader(r.Body))
@@ -25,6 +25,17 @@ func fetchRemote(r *pb.Req) (ab []byte, err error) {
return
}
b.WriteString(pr.hr.URL.String())
b.WriteString("\n\nreq header:\n\n")
for k, v := range pr.hr.Header {
fmt.Fprintf(&b, "\t%s: %v\n", k, v)
}
b.WriteString("\n")
fmt.Fprintf(&b, "req body: %d\n\n", len(r.Body))
if len(r.Body) > 0 {
fmt.Fprintf(&b, "%s\n\n", r.Body)
}
req.Header.Set(`Content-Type`, `application/json`)
req.Header.Set(`Authorization`, `Bearer `+config.OpenAIKey)
@@ -33,14 +44,35 @@ func fetchRemote(r *pb.Req) (ab []byte, err error) {
}
rsp, err := client.Do(req)
if err != nil {
fmt.Fprintf(&b, "client.Do fail: %s\n", err.Error())
return
}
for k, v := range rsp.Header {
zj.J(k, v)
if rsp.StatusCode >= 200 || rsp.StatusCode < 300 {
// ok = true
} else {
err = fmt.Errorf(`status code fail: %d`, rsp.StatusCode)
b.WriteString(err.Error())
}
b.WriteString("req header:\n\n")
for k, v := range rsp.Header {
fmt.Fprintf(&b, "\t%s: %v\n", k, v)
}
b.WriteString("\n")
ab, err = io.ReadAll(rsp.Body)
if err != nil {
fmt.Fprintf(&b, "rsp body: %d %v\n\n", len(ab), err)
b.Write(ab)
}
rsp.Body.Close()
return
}
func writeFailLog(hash [16]byte, ab []byte) {
date := time.Now().Format(`0102-150405`)
file := fmt.Sprintf(`fail/%s-%x.txt`, date, hash)
util.WriteFile(file, ab)
}