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 package org.apache.hc.client5.http.impl;
28
29 import org.apache.hc.client5.http.SchemePortResolver;
30 import org.apache.hc.core5.annotation.Contract;
31 import org.apache.hc.core5.annotation.ThreadingBehavior;
32 import org.apache.hc.core5.http.HttpHost;
33 import org.apache.hc.core5.http.URIScheme;
34 import org.apache.hc.core5.net.NamedEndpoint;
35 import org.apache.hc.core5.util.Args;
36
37
38
39
40
41
42 @Contract(threading = ThreadingBehavior.STATELESS)
43 public class DefaultSchemePortResolver implements SchemePortResolver {
44
45 public static final DefaultSchemePortResolver INSTANCE = new DefaultSchemePortResolver();
46
47 @Override
48 public int resolve(final HttpHost host) {
49 Args.notNull(host, "HTTP host");
50 return resolve(host.getSchemeName(), host);
51 }
52
53 @Override
54 public int resolve(final String scheme, final NamedEndpoint endpoint) {
55 Args.notNull(endpoint, "Endpoint");
56 final int port = endpoint.getPort();
57 if (port > 0) {
58 return port;
59 }
60 if (URIScheme.HTTP.same(scheme)) {
61 return 80;
62 } else if (URIScheme.HTTPS.same(scheme)) {
63 return 443;
64 } else {
65 return -1;
66 }
67 }
68
69 }