MVC RESTFUL HTTPClient try catch oddity
I'm a little puzzled why my try...catch exception does not seem to work properly. I set up the following code which works fine - to call a WCF restful service. I decided to test it by shutting off the WCF restful service in hopes that it will trap error messages or ignore a 200(ok) message etc but for some reason..the try catch and response.EnsureStatusIsSuccessful() seems to be ignored thus generating a HttpStageProcessingException error in the middle of the try catch..
As I understand it, I should only need to catch the ArgumentOutOfRangeException when a 200 is ignored...thoughts?
// set up passing parameters
var p = new HttpQueryString();
p.Add("username", username);
p.Add("password", password);
try
{
WebConfigurations cfg = new WebConfigurations();
HttpResponseMessage response;
// cfg - gets the base address for the URL of the WCF
using (HttpClient client = new HttpClient(cfg.GetBaseUrl()))
{
// exception HttpStageProcessingException occurs here...
response = client.Get(new Uri(client.BaseAddress + "MainService/ValidateUser"), p);
response.EnsureStatusIsSuccessful();
string memberallowed = string.Empty;
// process the resonse xml etc..NOT a problem...
ProcessStreamData proc = new ProcessStreamData();
memberallowed = proc.ReadStreamData(response);
// blah balh
return result;
开发者_JAVA技巧 }
}
catch (ArgumentOutOfRangeException aorEx)
{
Console.Write("Argument Out of Range: " + aorEx.Message);
return false;
}
// This really should not be here??? No error message is generated, too...
catch (HttpStageProcessingException timeEx)
{
Console.Write("Stage Processing" + timeEx.Message);
return false;
}
catch (Exception ex)
{
Console.Write("Standard error" + ex.Message);
return false;
}
Have you tried doing this after telling Visual Studio not to break on thrown exceptions? From the Menu, Debug-> Exceptions and then uncheck thrown.
Also, you probably want to dump that version of HttpClient from the Rest Starter Kit. The latest version can be found here http://nuget.org/List/Packages/HttpClient and be warned there are breaking changes.
精彩评论