0

我们正在使用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 被截断。

4

1 回答 1

0

我发现 ICAP 响应中不允许使用“req-hdr=0”。换句话说,问题更多在于 ICAP 服务器发送不符合要求的响应。

于 2013-02-12T20:11:32.570 回答