Skip to content

Commit

Permalink
更新了构造curl命令代码
Browse files Browse the repository at this point in the history
  • Loading branch information
代军 committed Sep 5, 2024
1 parent 54c9062 commit c38fa8f
Show file tree
Hide file tree
Showing 2 changed files with 39 additions and 13 deletions.
22 changes: 14 additions & 8 deletions go/appbuilder/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -180,26 +180,32 @@ func NopCloser(r io.Reader) io.ReadCloser {
}

func (t *SDKConfig) BuildCurlCommand(req *http.Request) {
curlCmd := fmt.Sprintf("curl -X %s -L '%v' \\\n", req.Method, req.URL.String())
var curlCmd strings.Builder
curlCmd.WriteString(fmt.Sprintf("curl -X %s -L '%v' \\\n", req.Method, req.URL.String()))

for k, v := range req.Header {
header := fmt.Sprintf("-H '%v: %v' \\\n", k, v[0])
curlCmd = fmt.Sprintf("%v %v", curlCmd, header)
curlCmd.WriteString(header)
}

if req.Method == "POST" {
bodyBytes, err := ioutil.ReadAll(req.Body)
bodyBytes, err := io.ReadAll(req.Body)
if err != nil {
t.logger.Println("Failed to read request body:", err)
return
}
req.Body.Close()
req.Body = io.NopCloser(strings.NewReader(string(bodyBytes)))

// 重置 req.Body 以便请求可以再次使用
req.Body = io.NopCloser(bytes.NewBuffer(bodyBytes))

body := fmt.Sprintf("-d '%v'", string(bodyBytes))
curlCmd = fmt.Sprintf("%v %v", curlCmd, body)
curlCmd.WriteString(body)
} else if req.Method == "GET" || req.Method == "DELETE" {
curlCmd = strings.TrimSuffix(curlCmd, " \\\n")
// 去掉末尾多余的字符
cmdStr := curlCmd.String()
curlCmd.Reset()
curlCmd.WriteString(strings.TrimSuffix(cmdStr, " \\\n"))
}
fmt.Println("\n" + curlCmd + "\n")

fmt.Println("\n" + curlCmd.String() + "\n")
}
30 changes: 25 additions & 5 deletions go/appbuilder/dataset.go
Original file line number Diff line number Diff line change
Expand Up @@ -46,40 +46,60 @@ type Dataset struct {
}

func (t *Dataset) Create(name string) (string, error) {
request := http.Request{}
request := &http.Request{}
header := t.sdkConfig.AuthHeader()
serviceURL, err := t.sdkConfig.ServiceURL("/api/v1/ai_engine/agi_platform/v1/datasets/create")
if err != nil {
return "", err
}
request.URL = serviceURL
request.Method = "POST"

// 使用 http.NewRequest 构造请求对象
request, err = http.NewRequest("POST", serviceURL.String(), nil)
if err != nil {
return "", err
}

// 设置请求头
header.Set("Content-Type", "application/json")
request.Header = header

// 构造请求体
req := map[string]string{"name": name}
data, _ := json.Marshal(req)
request.Body = io.NopCloser(bytes.NewReader(data))
t.sdkConfig.BuildCurlCommand(&request)
resp, err := t.client.Do(&request)

// 构建并打印 Curl 命令
t.sdkConfig.BuildCurlCommand(request)

// 发送请求
resp, err := t.client.Do(request)
if err != nil {
return "", err
}
defer resp.Body.Close()

// 检查 HTTP 响应
requestID, err := checkHTTPResponse(resp)
if err != nil {
return "", fmt.Errorf("requestID=%s, err=%v", requestID, err)
}

// 读取响应体
data, err = io.ReadAll(resp.Body)
if err != nil {
return "", fmt.Errorf("requestID=%s, err=%v", requestID, err)
}

// 解析响应
rsp := DatasetResponse{}
if err := json.Unmarshal(data, &rsp); err != nil {
return "", fmt.Errorf("requestID=%s, err=%v", requestID, err)
}

if rsp.Code != 0 {
return "", fmt.Errorf("requestID=%s, content=%v", requestID, string(data))
}

return rsp.Result["id"].(string), nil
}

Expand Down

0 comments on commit c38fa8f

Please sign in to comment.