gpt4 book ai didi

http: ContentLength=99 正文长度为 0

转载 作者:数据小太阳 更新时间:2023-10-29 03:20:05 26 4
gpt4 key购买 nike

我有这个函数来执行http请求

func do(r *http.Request) (response *http.Response, e error) {
r.Header.Set(SessionHeader, client.SessionId)
response, e = client.Do(r)
if e != nil {
return nil, e
}
if response.StatusCode == http.StatusConflict {
client.SessionId = response.Header.Get(SessionHeader)
r.Header.Set(SessionHeader, client.SessionId)
response, e = client.Do(r)
if e != nil {
return nil, e
}
return
} else if response.StatusCode != http.StatusOK {
return nil, errors.New("status Not OK")
}
return
}

所以我提出了一个请求,如果我的 session ID 无效,我会从响应中设置 header 并重试。问题是当我这样做时 Body 被冲洗了,并且弹出了这个错误:

Post http://localhost/api: http: ContentLength=99 with Body length 0

我该如何解决这个问题?

最佳答案

创建请求并使用它。

func do(r *http.Request) (response *http.Response, err error) {
r.Header.Set(SessionHeader, client.SessionId)
response, err = client.Do(r)
if err != nil {
return nil, err
}

if response.StatusCode == http.StatusConflict {
// Get SessionId
client.SessionId = response.Header.Get(SessionHeader)

// Create Request
req, err := http.NewRequest("GET", "http://example.com", nil)
req.Header.Set("SessionHeader", client.SessionId)

response, err := client.Do(req)
if err != nil {
return nil, err
}
return
} else if response.StatusCode != http.StatusOK {
return nil, errors.New("status Not OK")
}
return
}

关于http: ContentLength=99 正文长度为 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55385894/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com