gpt4 book ai didi

json - Golang http 请求 POST 工作一次

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

我有一个主人和一个奴隶。 Master 有 api 调用结果,它采用 JSON。我有奴隶的问题,它在主人上发送这个结果,第一次我的代码发送 json 很好,但第二次,代码停止(程序等待.....)在 resp, err := client.Do (req),当在 master 上创建查询时。救助代码:

func main (){
for {
// some code, very long code
sendResult(resFiles)
}
}

func sendResult(rf common.ResultFiles) {
jsonValue, err := json.Marshal(rf)
req, err := http.NewRequest(methodPost, ResultAdress,
bytes.NewBuffer(jsonValue))
req.Header.Set("Content-Type", ContentType)
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
fmt.Println("response Status:", resp.Status)
}

主 api 调用:

func result(c echo.Context) error {
rf := &ResultFiles{}
err := c.Bind(rf)
if err != nil {
log.Fatal(err)
}
rfChannel <- *rf
return c.JSON(http.StatusOK, nil)
}

我的问题:为什么?可能是标准客户端 golang (http.Client) 中的问题或超时?如果我设置超时 - 我的代码因超时而崩溃)))预期....谢谢!

最佳答案

您需要为您的 http.Client 添加超时。默认情况下 http.Client 将超时指定为 0,这意味着根本没有超时。因此,如果服务器没有响应,那么您的应用程序将挂起等待响应。此问题在本文中有完整描述 Don’t use Go’s default HTTP client (in production) .尽管您创建了自定义客户端,但您仍然需要指定超时。

关于json - Golang http 请求 POST 工作一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50834379/

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