2222import java .io .InputStreamReader ;
2323import java .io .Reader ;
2424import java .nio .Buffer ;
25+ import java .nio .ByteBuffer ;
2526import java .nio .CharBuffer ;
2627import java .nio .charset .Charset ;
2728import java .util .Collection ;
2829import java .util .Map ;
30+ import java .util .Optional ;
2931import java .util .regex .Matcher ;
3032import java .util .regex .Pattern ;
3133
@@ -36,7 +38,7 @@ public class FeignException extends RuntimeException {
3638 "request should not be null" ;
3739 private static final long serialVersionUID = 0 ;
3840 private int status ;
39- private byte [] content ;
41+ private byte [] responseBody ;
4042 private Request request ;
4143
4244 protected FeignException (int status , String message , Throwable cause ) {
@@ -45,10 +47,10 @@ protected FeignException(int status, String message, Throwable cause) {
4547 this .request = null ;
4648 }
4749
48- protected FeignException (int status , String message , Throwable cause , byte [] content ) {
50+ protected FeignException (int status , String message , Throwable cause , byte [] responseBody ) {
4951 super (message , cause );
5052 this .status = status ;
51- this .content = content ;
53+ this .responseBody = responseBody ;
5254 this .request = null ;
5355 }
5456
@@ -58,10 +60,10 @@ protected FeignException(int status, String message) {
5860 this .request = null ;
5961 }
6062
61- protected FeignException (int status , String message , byte [] content ) {
63+ protected FeignException (int status , String message , byte [] responseBody ) {
6264 super (message );
6365 this .status = status ;
64- this .content = content ;
66+ this .responseBody = responseBody ;
6567 this .request = null ;
6668 }
6769
@@ -72,10 +74,10 @@ protected FeignException(int status, String message, Request request, Throwable
7274 }
7375
7476 protected FeignException (
75- int status , String message , Request request , Throwable cause , byte [] content ) {
77+ int status , String message , Request request , Throwable cause , byte [] responseBody ) {
7678 super (message , cause );
7779 this .status = status ;
78- this .content = content ;
80+ this .responseBody = responseBody ;
7981 this .request = checkRequestNotNull (request );
8082 }
8183
@@ -85,10 +87,10 @@ protected FeignException(int status, String message, Request request) {
8587 this .request = checkRequestNotNull (request );
8688 }
8789
88- protected FeignException (int status , String message , Request request , byte [] content ) {
90+ protected FeignException (int status , String message , Request request , byte [] responseBody ) {
8991 super (message );
9092 this .status = status ;
91- this .content = content ;
93+ this .responseBody = responseBody ;
9294 this .request = checkRequestNotNull (request );
9395 }
9496
@@ -100,8 +102,27 @@ public int status() {
100102 return this .status ;
101103 }
102104
105+ /**
106+ * The Response Body, if present.
107+ *
108+ * @return the body of the response.
109+ * @deprecated use {@link #responseBody()} instead.
110+ */
111+ @ Deprecated
103112 public byte [] content () {
104- return this .content ;
113+ return this .responseBody ;
114+ }
115+
116+ /**
117+ * The Response body.
118+ *
119+ * @return an Optional wrapping the response body.
120+ */
121+ public Optional <ByteBuffer > responseBody () {
122+ if (this .responseBody == null ) {
123+ return Optional .empty ();
124+ }
125+ return Optional .of (ByteBuffer .wrap (this .responseBody ));
105126 }
106127
107128 public Request request () {
@@ -113,8 +134,8 @@ public boolean hasRequest() {
113134 }
114135
115136 public String contentUTF8 () {
116- if (content != null ) {
117- return new String (content , UTF_8 );
137+ if (responseBody != null ) {
138+ return new String (responseBody , UTF_8 );
118139 } else {
119140 return "" ;
120141 }
0 commit comments