1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 package org.apache.hc.core5.http2.protocol;
29
30 import java.io.IOException;
31
32 import org.apache.hc.core5.annotation.Contract;
33 import org.apache.hc.core5.annotation.ThreadingBehavior;
34 import org.apache.hc.core5.http.EntityDetails;
35 import org.apache.hc.core5.http.HttpException;
36 import org.apache.hc.core5.http.HttpResponse;
37 import org.apache.hc.core5.http.ProtocolVersion;
38 import org.apache.hc.core5.http.message.MessageSupport;
39 import org.apache.hc.core5.http.protocol.HttpContext;
40 import org.apache.hc.core5.http.protocol.ResponseContent;
41 import org.apache.hc.core5.util.Args;
42
43
44
45
46
47
48 @Contract(threading = ThreadingBehavior.IMMUTABLE)
49 public class H2ResponseContent extends ResponseContent {
50
51
52
53
54
55
56 public static final H2ResponseContent INSTANCE = new H2ResponseContent();
57
58 public H2ResponseContent() {
59 super();
60 }
61
62 public H2ResponseContent(final boolean overwrite) {
63 super(overwrite);
64 }
65
66 @Override
67 public void process(
68 final HttpResponse response,
69 final EntityDetails entity,
70 final HttpContext context) throws HttpException, IOException {
71 Args.notNull(context, "HTTP context");
72 final ProtocolVersion ver = context.getProtocolVersion();
73 if (ver.getMajor() < 2) {
74 super.process(response, entity, context);
75 } else if (entity != null) {
76 MessageSupport.addContentTypeHeader(response, entity);
77 MessageSupport.addContentEncodingHeader(response, entity);
78 MessageSupport.addTrailerHeader(response, entity);
79 }
80 }
81
82 }