【问题标题】:Consume REST service in MVC 6在 MVC 6 中使用 REST 服务
【发布时间】: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


    【解决方案1】:

    ASP.NET 中的 REST 服务没有“添加服务引用”功能(就像 WSDL 描述的服务一样)。 从来没有。您使用该服务,就像您使用 javascript 直接从您的浏览器使用它一样。 不同之处在于您需要使用任何 http 客户端(HttpClient 或 RestSharp 是最流行的)在 .NET 中编写类似的代码。

    有一些努力使 REST 服务更易于使用。 Swagger 是我用来描述我的 API 的工具。它还允许生成各种语言的客户端代码。

    【讨论】:

      【解决方案2】:

      要在 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;
                  }
      
              }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-12-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-08-04
        • 2011-03-23
        • 1970-01-01
        相关资源
        最近更新 更多