When running the following in a WPF application, the ExecuteAsync method will receive an error response from the Rest Service being called sometimes. However, when run in a console app, there is never an error response. Any suggestions would be appreciated.
private static void TestRest()
{
var request = new RestRequest
{
Resource = "my/resource/",
Method = Method.GET,
RequestFormat = DataFormat.Json,
};
request.AddHeader( "Accept", "application/json, text/javascript, */*" );
request.AddParameter( "format", "json" );
request.AddParameter( "key1", "value1" );
request.AddParameter( "key2", "value2" );
request.AddParameter( "key3", "value3" );
Uri restUrl = client.BuildUri( request );
Trace.WriteLine( restUrl.AbsoluteUri, "Rest URL" );
client.ExecuteAsync<MyClass>( request, RestCallback );
}
private static void RestCallback( IRestResponse<MyClass> response, RestRequestAsyncHandle handle )
{
string msg;
if( response.StatusCode == HttpStatusCode.OK && response.Data != null
&& response.Data.StatusCode.ToLower() == "ok" )
{
msg = "response is valid.";
}
else
{
msg = "response is not valid.";
msg += string.Format( "HttpStatusCode: {0}. Description: {1}",
response.StatusCode,
response.StatusDescription );
if( response.Data != null )
{
// StatusCode will intermittently return an error in an WPF application,
// but not a Console Application. The StatusMessage is always empty.
msg += string.Format( "Status Code: {0}", response.Data.StatusCode );
msg += string.Format( "Status Message: {0}", response.Data.StatusMessage );
}
}
Trace.WriteLine( msg );
}