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.http.impl.io;
29
30 import java.io.IOException;
31
32 import org.apache.hc.core5.http.ClassicHttpResponse;
33 import org.apache.hc.core5.http.HttpException;
34 import org.apache.hc.core5.http.HttpResponseFactory;
35 import org.apache.hc.core5.http.config.Http1Config;
36 import org.apache.hc.core5.http.message.LineParser;
37 import org.apache.hc.core5.http.message.StatusLine;
38 import org.apache.hc.core5.util.CharArrayBuffer;
39
40
41
42
43
44
45
46 public class DefaultHttpResponseParser extends AbstractMessageParser<ClassicHttpResponse> {
47
48 private final HttpResponseFactory<ClassicHttpResponse> responseFactory;
49
50
51
52
53 public DefaultHttpResponseParser(
54 final Http1Config http1Config,
55 final LineParser lineParser,
56 final HttpResponseFactory<ClassicHttpResponse> responseFactory) {
57 super(http1Config, lineParser);
58 this.responseFactory = responseFactory != null ? responseFactory : DefaultClassicHttpResponseFactory.INSTANCE;
59 }
60
61
62
63
64 @Deprecated
65 public DefaultHttpResponseParser(
66 final LineParser lineParser,
67 final HttpResponseFactory<ClassicHttpResponse> responseFactory,
68 final Http1Config http1Config) {
69 this(http1Config, lineParser, responseFactory);
70 }
71
72
73
74
75 public DefaultHttpResponseParser(final Http1Config http1Config) {
76 this(http1Config, null, null);
77 }
78
79
80
81
82 public DefaultHttpResponseParser() {
83 this(Http1Config.DEFAULT);
84 }
85
86 @Override
87 protected ClassicHttpResponse createMessage(final CharArrayBuffer buffer) throws IOException, HttpException {
88 final StatusLine statusline = getLineParser().parseStatusLine(buffer);
89 final ClassicHttpResponse response = this.responseFactory.newHttpResponse(statusline.getStatusCode(), statusline.getReasonPhrase());
90 response.setVersion(statusline.getProtocolVersion());
91 return response;
92 }
93
94 }