diff --git a/PocketSharp/IPocketClient.cs b/PocketSharp/IPocketClient.cs index 91bd6d4..3f78fe0 100644 --- a/PocketSharp/IPocketClient.cs +++ b/PocketSharp/IPocketClient.cs @@ -26,7 +26,7 @@ namespace PocketSharp /// /// The request. /// - IRestResponse Request(RestRequest request); + string Request(RestRequest request); /// /// Makes a typed HTTP REST request to the API diff --git a/PocketSharp/PocketClient.cs b/PocketSharp/PocketClient.cs index ea78dc1..e70e263 100644 --- a/PocketSharp/PocketClient.cs +++ b/PocketSharp/PocketClient.cs @@ -87,9 +87,14 @@ namespace PocketSharp /// /// The request. /// - public IRestResponse Request(RestRequest request) + public string Request(RestRequest request) { - return _restClient.Execute(request); + IRestResponse response = _restClient.Execute(request); + + LastRequestData = response; + ValidateResponse(response); + + return response.Content; } /// @@ -103,17 +108,29 @@ namespace PocketSharp IRestResponse response = _restClient.Execute(request); LastRequestData = response; + ValidateResponse(response); - if(response.StatusCode != HttpStatusCode.OK) + return response.Data; + } + + + /// + /// Validates the response. + /// + /// The response. + /// + protected bool ValidateResponse(IRestResponse response) + { + if (response.StatusCode != HttpStatusCode.OK) { throw new APIException(response.Content, response.ErrorException); } - else if(response.ErrorException != null) + else if (response.ErrorException != null) { throw new APIException("Error retrieving response", response.ErrorException); } - return response.Data; + return true; }