首页 新闻 会员 周边 捐助

.net core中调用webapi时如何简单有效地验证服务端响应

0
悬赏园豆:100 [待解决问题]

当请求一个webapi时,如果因为dns解析问题或者docker容器路由问题造成请求被发送到不相关的服务器,这个服务器给出的响应结果会误导webapi客户端,要解决这个问题就需要对服务端响应进行验证,请问在asp.net core中有什么简单有效的方式可以完成这个验证?

dudu的主页 dudu | 高人七级 | 园豆:30757
提问于:2018-03-21 18:03

如果发送到不相关的服务器,这个服务器会给出什么响应结果?

BUTTERAPPLE 6年前

@BUTTERAPPLE: 最常见的是404,偶尔巧合的情况下可能会返回200

dudu 6年前

@dudu: 是在同一个服务器里面不同的应用,还是不同的服务器的不同应用?

BUTTERAPPLE 6年前

@BUTTERAPPLE: 都有可能,取决于应用的具体部署情况,这个与我提的问题无关

dudu 6年前
< >
分享
所有回答(3)
1

给每个 WebAPI 服务分配一个名字,在 WebAPI 服务的每个响应头上附加上 FROM-WHO。

在每个 WebAPI 上加一个中间件,每次返回响应的时候, 把自己的名字写在 FROM-WHO 里面。这样客户端就可以校验是否是正确的服务发回了响应。这样的修改也不会影响现有的 WebAPI 及其客户端的实现。

不如隐茶去 | 园豆:559 (小虾三级) | 2018-03-21 18:18
0

我认为楼上的标记办法都不用了,去掉这个200重复的uri就行了。

花飘水流兮 | 园豆:13615 (专家六级) | 2018-03-22 13:00
0

我的建议是不要使用 HTTP 状态码表示业务状态。

蝌蝌 | 园豆:158 (初学一级) | 2018-03-26 15:42
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册