首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >验证http-response数据的最有效方法是什么

验证http-response数据的最有效方法是什么
EN

Stack Overflow用户
提问于 2018-03-24 16:12:05
回答 3查看 203关注 0票数 0

例如,当我发出以下http请求时:

获取/myBox

并期望json格式的数据响应:

代码语言:javascript
复制
{
  a: (expecting a number),
  b: (expecting a string),
  c: (expecting 'apple', 'orange', or 'banana')
}

那么让我们假设我们的服务器程序永远不会出错。我们是否需要验证响应的内容数据,以防出现一些净错误?如果我们应该这样做,那么验证每个响应数据的最有效方法是什么?

EN

回答 3

Stack Overflow用户

发布于 2018-03-24 16:33:40

最好是创建一个可预测的JSON有效负载,该负载在成功和错误情况下都来自您的服务器。例如,如果我们遇到一个错误,可能是这样的有效负载:

代码语言:javascript
复制
{ error: true, errorMessage: 'Some error message', payload: null }

对于与网络相关的错误,您需要在客户端应用程序中处理适当的HTTP状态代码。更多信息请点击这里:https://developer.mozilla.org/en-US/docs/Web/HTTP/Status

如果您想要为从服务器传递到客户端数据开发一个脊状模式,那么您可能需要考虑一种更适合于Protobuf的格式。

请参见:

票数 3
EN

Stack Overflow用户

发布于 2018-03-24 16:36:44

总体而言,我认为您可以合理地预期响应是正确的。大多数开发人员会这样做。如果您要处理多个服务器以及这些服务器的多个实现者实现相同的协议,那么您可能不能信任它。

在这种情况下,验证响应的一种方法是使用诸如json-schema之类的内容。

但是,如果您处理的服务器不多,也许您可以问问自己,在哪些情况下响应可能是错误的。你有理由不相信它吗?

票数 1
EN

Stack Overflow用户

发布于 2018-03-24 16:20:32

当您设置response对象中预期的字段的数据类型时,您可以验证响应数据。

例如:

假设这是您期望作为响应对象的类:-

代码语言:javascript
复制
    public class example {
private String field1;
private int field2;
private bloolean field3;
}

如果在上面的字段中,你得到的是field1,而不是字符串,那么你会得到一个错误,检查服务器是否给出了你期望的响应。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49462632

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档