18
18
import java .io .InputStreamReader ;
19
19
import java .io .Reader ;
20
20
import java .nio .Buffer ;
21
+ import java .nio .ByteBuffer ;
21
22
import java .nio .CharBuffer ;
22
23
import java .nio .charset .Charset ;
23
24
import java .util .Collection ;
24
25
import java .util .Map ;
26
+ import java .util .Optional ;
25
27
import java .util .regex .Matcher ;
26
28
import java .util .regex .Pattern ;
27
29
import static feign .Util .UTF_8 ;
@@ -37,7 +39,7 @@ public class FeignException extends RuntimeException {
37
39
"request should not be null" ;
38
40
private static final long serialVersionUID = 0 ;
39
41
private int status ;
40
- private byte [] content ;
42
+ private byte [] responseBody ;
41
43
private Request request ;
42
44
43
45
protected FeignException (int status , String message , Throwable cause ) {
@@ -46,10 +48,10 @@ protected FeignException(int status, String message, Throwable cause) {
46
48
this .request = null ;
47
49
}
48
50
49
- protected FeignException (int status , String message , Throwable cause , byte [] content ) {
51
+ protected FeignException (int status , String message , Throwable cause , byte [] responseBody ) {
50
52
super (message , cause );
51
53
this .status = status ;
52
- this .content = content ;
54
+ this .responseBody = responseBody ;
53
55
this .request = null ;
54
56
}
55
57
@@ -59,10 +61,10 @@ protected FeignException(int status, String message) {
59
61
this .request = null ;
60
62
}
61
63
62
- protected FeignException (int status , String message , byte [] content ) {
64
+ protected FeignException (int status , String message , byte [] responseBody ) {
63
65
super (message );
64
66
this .status = status ;
65
- this .content = content ;
67
+ this .responseBody = responseBody ;
66
68
this .request = null ;
67
69
}
68
70
@@ -73,10 +75,10 @@ protected FeignException(int status, String message, Request request, Throwable
73
75
}
74
76
75
77
protected FeignException (int status , String message , Request request , Throwable cause ,
76
- byte [] content ) {
78
+ byte [] responseBody ) {
77
79
super (message , cause );
78
80
this .status = status ;
79
- this .content = content ;
81
+ this .responseBody = responseBody ;
80
82
this .request = checkRequestNotNull (request );
81
83
}
82
84
@@ -86,10 +88,10 @@ protected FeignException(int status, String message, Request request) {
86
88
this .request = checkRequestNotNull (request );
87
89
}
88
90
89
- protected FeignException (int status , String message , Request request , byte [] content ) {
91
+ protected FeignException (int status , String message , Request request , byte [] responseBody ) {
90
92
super (message );
91
93
this .status = status ;
92
- this .content = content ;
94
+ this .responseBody = responseBody ;
93
95
this .request = checkRequestNotNull (request );
94
96
}
95
97
@@ -101,8 +103,27 @@ public int status() {
101
103
return this .status ;
102
104
}
103
105
106
+ /**
107
+ * The Response Body, if present.
108
+ *
109
+ * @return the body of the response.
110
+ * @deprecated use {@link #responseBody()} instead.
111
+ */
112
+ @ Deprecated
104
113
public byte [] content () {
105
- return this .content ;
114
+ return this .responseBody ;
115
+ }
116
+
117
+ /**
118
+ * The Response body.
119
+ *
120
+ * @return an Optional wrapping the response body.
121
+ */
122
+ public Optional <ByteBuffer > responseBody () {
123
+ if (this .responseBody == null ) {
124
+ return Optional .empty ();
125
+ }
126
+ return Optional .of (ByteBuffer .wrap (this .responseBody ));
106
127
}
107
128
108
129
public Request request () {
@@ -114,8 +135,8 @@ public boolean hasRequest() {
114
135
}
115
136
116
137
public String contentUTF8 () {
117
- if (content != null ) {
118
- return new String (content , UTF_8 );
138
+ if (responseBody != null ) {
139
+ return new String (responseBody , UTF_8 );
119
140
} else {
120
141
return "" ;
121
142
}
0 commit comments