我正在Netty Github查看HttpStaticFileServerHandler示例。在messageRecieved上,如果解码器结果不成功,则抛出错误请求。所以响应代码为400.我想在请求uri太长时发送414。
我已经尝试了,
Throwable cause = requestMessage.getDecoderResult().cause();
String message = cause != null ? cause.getMessage() : "";
HttpResponseStatus responseStatus = cause instanceof TooLongFrameException?
HttpResponseStatus.REQUEST_URI_TOO_LONG : HttpResponseStatus.BAD_REQUEST;
有更好的方法吗?我相信其他情况也会抛出TooLongFrameException。所以在那些情况下可能不对。解析错误消息也不好看。想知道这是否可以以更好/更优雅的方式完成。
答案 0 :(得分:0)
该处理程序中的一点是代码块:
final String uri = request.uri();
final String path = sanitizeUri(uri);
if (path == null) {
sendError(ctx, FORBIDDEN);
return;
}
你能用uri.length()检查和相关的sendError来使用这个块吗?