我有一个监听端口的netty服务器。它可以在此端口上接收HttpResponses或HttpRequests。如何设置管道来处理两者并区分两者?这可能吗?连接是从此服务器启动的,而不是从它发起的。
谢谢!
答案 0 :(得分:0)
您可以使用PortUnification示例中的 isHttp 方法。它检查接收消息的前两个无符号字节,以确定它是否可能是HTTP动词,从而将消息标识为HTTP请求。您可能需要稍微修改它,具体取决于任何响应的可能内容。
private static boolean isHttp(int magic1, int magic2) {
return
magic1 == 'G' && magic2 == 'E' || // GET
magic1 == 'P' && magic2 == 'O' || // POST
magic1 == 'P' && magic2 == 'U' || // PUT
magic1 == 'H' && magic2 == 'E' || // HEAD
magic1 == 'O' && magic2 == 'P' || // OPTIONS
magic1 == 'P' && magic2 == 'A' || // PATCH
magic1 == 'D' && magic2 == 'E' || // DELETE
magic1 == 'T' && magic2 == 'R' || // TRACE
magic1 == 'C' && magic2 == 'O'; // CONNECT
}