Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在RestSharp中处理响应的最佳方式是什么?_C#_Restsharp - Fatal编程技术网

C# 在RestSharp中处理响应的最佳方式是什么?

C# 在RestSharp中处理响应的最佳方式是什么?,c#,restsharp,C#,Restsharp,我使用RestSharp,我想知道处理响应的最佳方式是什么。response中有ErrorMessage、ErrorException和ResponseStatus,但我如何检查请求是否成功 我使用这个代码。看起来还好吗 if (response.ResponseStatus != ResponseStatus.Completed) { throw new ApplicationException(response.ErrorMessage); } 没错。您可以按约定处理其他响应类型这

我使用RestSharp,我想知道处理响应的最佳方式是什么。
response
中有
ErrorMessage
ErrorException
ResponseStatus
,但我如何检查请求是否成功

我使用这个代码。看起来还好吗

if (response.ResponseStatus != ResponseStatus.Completed)
{
    throw new ApplicationException(response.ErrorMessage);
}

没错。您可以按约定处理其他响应类型

这并不总是捕获所有错误。正如Jacob所说,
ResponseStatus
的值可以是Completed,即使它返回404或其他一些糟糕的状态

相反,使用处理所有
HttpStatus
响应的
StatusCode

if (response.StatusCode != System.Net.HttpStatusCode.OK)
  throw new ApplicationException(response.ErrorMessage);

如果REST服务响应非200s错误,则此代码不会引发异常。根据“如果API返回404,则响应状态仍将完成。”这假设被调用的端点始终返回200,它将需要检查任何2xx响应代码。