【发布时间】:2015-12-06 10:53:25
【问题描述】:
我需要帮助。我正在创建一个 MVC 6 应用程序并停留在我应该从 REST 服务使用 JSON 的部分。我找不到将我的项目连接到服务然后使用它的方式。
没有办法像以前的版本一样添加服务引用,而且我找不到 ASP.NET 5 文档,其中规定了在 MVC 6 中使用 3rd 方服务的政策。有人遇到过同样的问题吗?
【问题讨论】:
标签: c# rest service asp.net-core asp.net-core-mvc
我需要帮助。我正在创建一个 MVC 6 应用程序并停留在我应该从 REST 服务使用 JSON 的部分。我找不到将我的项目连接到服务然后使用它的方式。
没有办法像以前的版本一样添加服务引用,而且我找不到 ASP.NET 5 文档,其中规定了在 MVC 6 中使用 3rd 方服务的政策。有人遇到过同样的问题吗?
【问题讨论】:
标签: c# rest service asp.net-core asp.net-core-mvc
ASP.NET 中的 REST 服务没有“添加服务引用”功能(就像 WSDL 描述的服务一样)。 从来没有。您使用该服务,就像您使用 javascript 直接从您的浏览器使用它一样。 不同之处在于您需要使用任何 http 客户端(HttpClient 或 RestSharp 是最流行的)在 .NET 中编写类似的代码。
有一些努力使 REST 服务更易于使用。 Swagger 是我用来描述我的 API 的工具。它还允许生成各种语言的客户端代码。
【讨论】:
要在 MVC 中从 RESTful 服务获取 JSON,您只需对服务 API 进行 http 调用,并使用包含 json 属性的模型解析响应。您可以在此处阅读更多相关信息: http://bitoftech.net/2014/11/18/getting-started-asp-net-5-mvc-6-web-api-entity-framework-7/
示例如下所示:
public YourModel MakeRequest(string requestUrl)
{
try
{
HttpWebRequest request = WebRequest.Create(requestUrl) as HttpWebRequest;
using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)
{
if (response.StatusCode != HttpStatusCode.OK)
{
throw new Exception(String.Format("Server error (HTTP {0}: {1}).", response.StatusCode, response.StatusDescription));
}
JavaScriptSerializer serializer = new JavaScriptSerializer();
var responseObject = serializer.Deserialize<YourModel>(response);
return responseObject;
}
}
catch (Exception e)
{
// catch exception and log it
return null;
}
}
【讨论】: