// publishDraftfunc (this *JuejinClient) publishDraft(req JuejinPublishRequest) error { jsonData, err := json.Marshal(req) // 打印请求体 //fmt.Println(string(jsonData)) if err != nil { return fmt.Errorf("failed to marshal request: %v", err) } httpReq, err := http.NewRequest("POST", JuejinPublishURL, bytes.NewBuffer(jsonData)) if err != nil { return err } httpReq.Header.Set("Cookie", this.config.cookie) httpReq.Header.Set("Content-Type", "application/json") httpReq.Header.Set("User-Agent", "Mozilla/5.0") httpReq.Header.Set("Referer", "https://juejin.cn/") resp, err := http.DefaultClient.Do(httpReq) if err != nil { return fmt.Errorf("failed to send request: %v", err) } defer resp.Body.Close() var publishResp JuejinPublishResponse if err := json.NewDecoder(resp.Body).Decode(&publishResp); err != nil { return fmt.Errorf("failed to decode response: %v", err) } rlog.Debugln("JuejinClient publishDraft", rlog.String("publishResp", fmt.Sprintf("%+v", publishResp))) if publishResp.ErrNo != 0 { return fmt.Errorf("juejin API error: %d - %s", publishResp.ErrNo, publishResp.ErrMsg) } return nil}