Píšeme súbor služieb typu REST a vraciame chyby ako rôzne stavové kódy.
V našej klientskej aplikácii uprednostňujeme, ak náš pracovný postup nevyžadoval, aby sme zachytili a odovzdali výnimku na odhalenie chybového kódu.
Existuje spôsob, ako povedať WebClient alebo HttpWebRequest, aby prestal hádzať výnimky, keď narazí na StatusCode iný ako 200?
odpovede:
2 pre odpoveď č. 1Dizajn hovorí, že čokoľvek iné ako 200 alebo 201 je výnimočné.
HttpStatusCode httpStatusCode;
HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create("http://example.org/resource");
try
{
using (HttpWebResponse httpWebResponse = (HttpWebResponse)httpWebRequest.GetResponse())
{
// handle 200/201 case
}
}
catch (WebException webException)
{
if (webException.Response != null)
{
HttpWebResponse httpWebExceptionResponse = (HttpWebResponse)webException.Response;
switch (httpWebExceptionResponse.StatusCode)
{
case 304: // HttpStatusCode.NotModified
break;
case 410: // HttpStatusCode.Gone
break;
case 500: // HttpStatusCode.InternalServerError
break;
// etc
}
}
else
{
//did not contact host. Invalid host name?
}
}
return httpStatusCode;