当前位置: 首页 > 知识库问答 >
问题:

如何在响应体中单独设置错误代码和编组json?

齐涛
2023-03-14
json.NewEncoder(res).Encode(errorBody)
res.WriteHeader(http.StatusBadRequest)
http.Error(res,"Some Error Message here",http.StatusBadRequest)

但是我希望错误消息不是文本格式的,而是JSON格式的。我该怎么办?

共有1个答案

陶高峻
2023-03-14

可以先写标题,再写正文。

res.Header().Set("Content-Type", "application/json; charset=utf-8")
res.WriteHeader(http.StatusBadRequest)
if err = json.NewEncoder(res).Encode(err); err != nil {
    // handle encoder error
}

如果响应仍然是200和/或您得到警告,这意味着您或您使用的一些包正在其他地方为您编写头部。

更新:(回答评论中的相关问题)

 类似资料:
  • 有一个需要实现的REST APIendpoint用于获取一些信息并将后端请求发送到另一个服务器,来自后端服务器的响应必须设置为最终响应。我的问题是如何在javax.ws.rs.core.响应中设置响应体? 这里的消息是我需要设置的。但是我尝试了几种方法。没有一个奏效。

  • 我正在我的. Net Web应用程序上运行负载测试,使用Jeter。应用程序过程:启动-登录-开始测试-回答问题 直到500个用户或有时750个用户,测试才成功运行。但是当我增加负载时,我得到一个错误: 11.111.111.111是我的服务器IP地址。 我已经将jmeter.batch文件堆内存增加到HEAP=-Xms1g-Xmx4g-XX: MaxMetaspaceSize=256m Apac

  • 我正在使用JMeter执行负载测试,用户应该执行启动-登录- clk仪表板页面- clk登录页面(登录后出现的页面,即主页),其中clk仪表板和clk登录页面重复操作5次。 直到30个用户,当我增加用户负载时,我没有收到任何错误,我开始收到错误,因为 响应代码:非HTTP响应代码:org.apache.HTTP.conn.HttpHostConnectException响应消息:非HTTP回应消息

  • 我正在编写下面的代码,但这只是在响应代码为200时捕获响应体。对于所有其他情况,它都失败了。 图片-邮递员发出呼叫和响应,其中响应代码不等于200 例如,当响应代码409时,代码抛出错误 线程“main”java.io.IOException中的异常:服务器返回HTTP响应代码:409用于URL:http://fetch.product/v1/products/PD16798270/validat

  • 问题内容: 我有一个API调用,我需要对其进行一些检查并可能返回各种状态代码。我不需要自定义视图或任何东西,我只需要返回正确的代码。如果用户未通过适当的凭据,则需要返回401状态。如果他们尚未发送受支持的请求格式,则需要返回400状态。 因为它是一个API,所以我真正想做的就是设置响应状态并以一条简单的愚蠢消息退出,该消息说明请求失败的原因(可能使用)。刚好足以完成工作,但我还无法使其正常工作。我