我们正在使用http://icap.mimo.ch/netty ICAP 客户端。当服务器以 HTTP 403 响应时,客户端似乎无法读取 HTTP 标头。任何帮助表示赞赏。
来自 mimo 编解码器的日志
IcapClient HostIP absoluteFilePath
SKIP_CONTROL_CHARS-----
READ_ICAP_INITIAL_STATE--------
READ_ICAP_HEADER_STATE------
READ_HTTP_REQUEST_INITIAL_AND_HEADERS-------
8 Feb, 2013 4:15:53 PM org.jboss.netty.channel.SimpleChannelUpstreamHandler WARNING: EXCEPTION, please implement com.chunk.IcapClientHandler.exceptionCaught() for proper handling. java.lang.IllegalArgumentException: invalid version format: FORBIDDEN at org.jboss.netty.handler.codec.http.HttpVersion.<init>(HttpVersion.java:102) at org.jboss.netty.handler.codec.http.HttpVersion.valueOf(HttpVersion.java:62) at ch.mimo.netty.handler.codec.icap.ReadHttpRequestInitialAndHeadersState.execute(ReadHttpRequestInitialAndHeadersState.java:52) at ch.mimo.netty.handler.codec.icap.IcapMessageDecoder.decode(IcapMessageDecoder.java:98) at ch.mimo.netty.handler.codec.icap.IcapMessageDecoder.decode(IcapMessageDecoder.java:1) at org.jboss.netty.handler.codec.replay.ReplayingDecoder.callDecode(ReplayingDecoder.java:500) at org.jboss.netty.handler.codec.replay.ReplayingDecoder.messageReceived(ReplayingDecoder.java:435) at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:268) at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:255) at org.jboss.netty.channel.socket.nio.NioWorker.read(NioWorker.java:88)
响应的数据包捕获:
ICAP/1.0 200 正常
封装:req-hdr=0, res-hdr=0, res-body=176
日期:格林威治标准时间 2013 年 2 月 8 日星期五 09:35:39
服务:Somethin Systems Somethin Systems DLP SDK ICAP Server 1.0
HTTP/1.1 403 禁止
内容类型:文本/xml
内容长度:1118
服务器:Somethin Systems Somethin Systems DLP SDK ICAP Server 1.0
日期:格林威治标准时间 2013 年 2 月 8 日星期五 09:35:39
45e
<?xml version="1.0" encoding="UTF-8"?>
<Results>
<Action>3</Action>
</Results>
上面的 xml 被截断。