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.core5.http.impl;
28
29 import org.apache.hc.core5.annotation.Internal;
30 import org.apache.hc.core5.http.HttpStatus;
31 import org.apache.hc.core5.http.MethodNotSupportedException;
32 import org.apache.hc.core5.http.MisdirectedRequestException;
33 import org.apache.hc.core5.http.NotImplementedException;
34 import org.apache.hc.core5.http.ProtocolException;
35 import org.apache.hc.core5.http.RequestHeaderFieldsTooLargeException;
36 import org.apache.hc.core5.http.UnsupportedHttpVersionException;
37
38
39
40
41
42
43 @Internal
44 public class ServerSupport {
45
46 public static String toErrorMessage(final Exception ex) {
47 final String message = ex.getMessage();
48 return message != null ? message : ex.toString();
49 }
50
51 public static int toStatusCode(final Exception ex) {
52 final int code;
53 if (ex instanceof MethodNotSupportedException) {
54 code = HttpStatus.SC_NOT_IMPLEMENTED;
55 } else if (ex instanceof UnsupportedHttpVersionException) {
56 code = HttpStatus.SC_HTTP_VERSION_NOT_SUPPORTED;
57 } else if (ex instanceof NotImplementedException) {
58 code = HttpStatus.SC_NOT_IMPLEMENTED;
59 } else if (ex instanceof RequestHeaderFieldsTooLargeException) {
60 code = HttpStatus.SC_REQUEST_HEADER_FIELDS_TOO_LARGE;
61 } else if (ex instanceof MisdirectedRequestException) {
62 code = HttpStatus.SC_MISDIRECTED_REQUEST;
63 } else if (ex instanceof ProtocolException) {
64 code = HttpStatus.SC_BAD_REQUEST;
65 } else {
66 code = HttpStatus.SC_INTERNAL_SERVER_ERROR;
67 }
68 return code;
69 }
70
71 }
72