rest - 接收 bool 值作为对 http 请求的响应
问题描述
我有两个使用 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
。如何从中获取布尔值并返回它?
解决方案
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"
但稍后如果响应将包含更多数据,则只有解组方式有效。
推荐阅读
- c++ - C++ 中的 I/O 重定向
- c++ - eof() 如何读取文件中的行?
- html - 编辑已售商品 Ebay Scrape VBA
- sql - 比较这两个查询时,在 SQL 中计算汇总统计信息的最佳方法是什么?
- mysql - 使用 dayofyear() 函数比较日期
- r - 在 R 中使用 geom_sf 和 geom_point 时轴会减小
- javascript - 你如何制作javascript阻塞代码?
- postgresql - 在 Postgres 中运行系统命令并在 Insert 中使用返回值
- ibm-mq - DataPower MQ 连接数达到最大限制
- android - SystemClock.sleep 或 Thread.sleep 是否只是停止 UI?