【发布时间】:2017-08-18 08:19:36
【问题描述】:
我编写了以下代码,它基本上对我的服务器执行 JSON 请求:
var client = new RestClient("mysite.com");
var request = new RestRequest(Method.POST);
request.RequestFormat = DataFormat.Json;
request.AddParameter("application/x-www-form-urlencoded", /*params here...*/ ,ParameterType.RequestBody);
return JsonConvert.DeserializeObject<MyCustomType>(client.Execute(request).Content);
请注意最后一行代码:
return JsonConvert.DeserializeObject<MyCustomType>(client.Execute(request).Content);
我将服务器返回的 JSON 反序列化为我的应用程序中以前的类结构。
现在的问题是服务器可以返回错误响应或成功响应,对于每种情况,我都需要不同的类结构,以便我可以将它们映射到 C# 类对象...
所以我认为这样的事情会做:
public object PerformMyAwesomeRequest(string myToken)
{
var response =client.Execute(request).Content;
var statusCode = FetchStatusCode(response);
if(statusCode == 0)//signaling the response returned error
{
return JsonConvert.DeserializeObject<ErrorMessageCustomType>(response);
}
else{
return JsonConvert.DeserializeObject<MyCustomType>(response);
}
}
所以这样它不会给我任何错误......但这里的问题是这些对象现在只存在于运行时,我无法确定在我的 .NET MVC 操作中返回的服务器类型,如下所示:
public ActionResult SomeActon(){
var response = PerformMyAwesomeRequest("mytokenhere...");
//response object is assigned a corresponding type only at runtime...
}
所以我的问题是:
- 我可以从对服务器执行 http 请求的函数返回什么类型,以便我可以直接在代码中而不是在运行时知道从函数返回的类型?
【问题讨论】:
-
HttpResponseMessage 怎么样?
-
@kaarthickraman 能否详细说明一下,我不确定?
标签: c# asp.net json asp.net-mvc asp.net-mvc-5