登录
首页 >  Golang >  Go问答

接收 bool 值作为对 http 请求的响应

来源:stackoverflow

时间:2024-04-01 11:45:38 371浏览 收藏

学习Golang要努力,但是不要急!今天的这篇文章《接收 bool 值作为对 http 请求的响应》将会介绍到等等知识点,如果你想深入学习Golang,可以关注我!我会持续更新相关文章的,希望对大家都能有所帮助!

问题内容

我有两个服务使用 http 请求和响应相互通信。 repo-1 中的一个特定端点返回一个布尔值作为其响应。

response := checkifpresent(personid)
return c.json(http.statusok, response)

这里 response 是一个布尔值。在客户端,我收到这样的响应。

client := &http.Client{}
responseBody, err := client.Do(request)
if err != nil {
        return false
    }
    
defer responseBody.Body.Close()

response, _ := ioutil.ReadAll(responseBody.Body)

return response

但是,这里的响应类型为 []byte。如何从中获取 bool 值并返回它?


正确答案


response 是字节切片中的 json 编码数据,包含字符串 true。您必须从 json 中解组它。

var resp bool
err := json.unmarshal(response, &resp)
if err != nil {
  //do the error handling, and return, for example:
  return false, err
}
return resp, nil

或者简单地你可以检查它是否等于字符串“true”

return string(response) == "true"

但是如果稍后响应将包含更多数据,则只有 unmarshal 方式才有效。

终于介绍完啦!小伙伴们,这篇关于《接收 bool 值作为对 http 请求的响应》的介绍应该让你收获多多了吧!欢迎大家收藏或分享给更多需要学习的朋友吧~golang学习网公众号也会发布Golang相关知识,快来关注吧!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>