1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.apache.mina.http;
21
22 import org.apache.mina.core.filterchain.IoFilter;
23 import org.apache.mina.core.session.IoSession;
24 import org.apache.mina.filter.codec.ProtocolCodecFilter;
25 import org.apache.mina.filter.codec.ProtocolDecoder;
26 import org.apache.mina.filter.codec.ProtocolEncoder;
27
28
29
30
31
32 public class HttpClientCodec extends ProtocolCodecFilter {
33
34
35 private static final String DECODER_STATE_ATT = "http.ds";
36
37
38 private static final String PARTIAL_HEAD_ATT = "http.ph";
39
40 private static ProtocolEncoder encoder = new HttpClientEncoder();
41 private static ProtocolDecoder decoder = new HttpClientDecoder();
42
43
44
45
46 public HttpClientCodec() {
47 super(encoder, decoder);
48 }
49
50
51
52
53 @Override
54 public void sessionClosed(IoFilter.NextFilter nextFilter, IoSession session) throws Exception {
55 super.sessionClosed(nextFilter, session);
56 session.removeAttribute(DECODER_STATE_ATT);
57 session.removeAttribute(PARTIAL_HEAD_ATT);
58 }
59 }