提前感谢您的帮助:
我的情况是这样的: 我有一个API,当服务器出错时,返回System.Web.Http.HttpError的内容。
var errorResponse = new ErrorResponseFactory(ex, _showDebug);
System.Web.Http.HttpError error = errorResponse.Error;
return Request.CreateErrorResponse(HttpStatusCode.InternalServerError, error);
在进行单元测试时 - 直接调用API方法,我可以很好地提取HttpError。但是,当从另一台服务器调用API时,我得到的全部是Net.Http.StreamContent。我似乎无法将HTTPError用于消费。
var response = client.GetAsync(apiSignature).Result;
// RETURN INSTANCE OF THE REQUESTED RESOURCE
if (response.IsSuccessStatusCode)
{
return response.StatusCode == HttpStatusCode.NoContent
? default(T)
: response.Content.ReadAsAsync<T>().Result;
}
// DEAL WITH ERROR CASE
var httpError = GetHttpError(response);
这将始终返回null;
protected HttpError GetHttpError(HttpResponseMessage message)
{
HttpError err;
message.TryGetContentValue(out err);
return err;
}
我可以完全控制两个代码基础,所以我没有嫁给HTTP错误,但我确实喜欢它提供的内容,并且如果可能的话我想使用它。
再次感谢,
(MS Visual Studio Web API应用程序,Window的Azure部署,但在本地测试)
SteveJ