【发布时间】:2020-03-05 12:50:15
【问题描述】:
在我的WebSocketConfigurer 实现中,我有一个这样配置的 WebSocket 端点
public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {
registry.addHandler(new ExceptionWebSocketHandlerDecorator(myWebSocketHandler), "/ws/")
.setAllowedOrigins("*")
.addInterceptors(myHandshakeInterceptor);
}
myWebSocketHandler#beforeHandshake 中有一些检查,我想向用户发送一条错误消息,以防服务器决定拒绝升级连接。这个我试过了
response.setStatusCode(HttpStatus.BAD_GATEWAY);
try {
response.getBody().write("Error".getBytes());
response.getBody().flush();
} catch (IOException e) {
log.error("Error writing response", e);
}
return false;
状态码有效,但正文为空。如何发送?
编辑:原来问题是我使用 Firefox 控制台来检查响应,但它没有显示任何内容。如果我使用 cURL 发出相同的请求,那么一切正常,我会看到我写到响应正文的消息!
【问题讨论】:
-
你是如何检查身体是空的?
-
Spring 拦截器没有修改响应体
-
我在 Firefox 控制台中检查了响应。原来它没有显示响应正文。当我使用 curl 时,一切正常,我可以阅读响应。
-
您使用了拦截器或自定义处理程序?