【问题标题】:How to call API in asp.net MVC5如何在asp.net MVC5中调用API
【发布时间】:2017-10-23 01:45:34
【问题描述】:

我有一个 asp.net mvc5 项目,我想使用 JSON 调用另一个 API, 我想从我的 Controller 操作中调用该 API,因为我需要在其中进行一些哈希处理,

这是我第一次这样做,我需要以 JSON 格式发送请求,并使用控制器操作以 JSON 格式获取响应。

【问题讨论】:

  • 您的意思是,如何从您的控制器调用 asp.net mvc5 中的另一个 WEB API?
  • 互联网上有很多参考资料解释了如何实现这一点。参考这个例如levelnis.co.uk/blog/…
  • 是的,从我的项目中调用远程 api。

标签: c# json asp.net-mvc-5 asp.net-web-api2


【解决方案1】:

如果你的方法是 POST :

                string uri = "yourdomain/api/controller/method;

                var client = new HttpClient();
                var values = new Dictionary<string, string>()
                    {
                        {"username", SecurityHelper.EncryptQueryString(username)},
                        {"password", SecurityHelper.EncryptQueryString(password)},
                    };
                var content = new FormUrlEncodedContent(values);
                var response = await client.PostAsync(uri, content);
                response.EnsureSuccessStatusCode();

如果你的方法是 GET :

                    string url = "domain/api/controller/method?parameter1=param";
                    using (var client = new HttpClient())
                    {
                        HttpResponseMessage response = await client.GetAsync(url).ConfigureAwait(false);
                        if (response.IsSuccessStatusCode)
                        {
                            var jsonResponse = response.Content.ReadAsStringAsync().Result;
                            bool data = JsonConvert.DeserializeObject<bool>(jsonResponse);
                            return data;
                        }
                    }

【讨论】:

    【解决方案2】:
            var client = new HttpClient();
            var payload = @"{
               'CPU': 'Intel',
               'PSU': '500W',
               'Drives': [
                 'DVD read/writer',
                 '500 gigabyte hard drive',
                 '200 gigabype hard drive'
               ]
            }";
    
            var content = new StringContent(payload, Encoding.UTF8, "application/json");
            var url = {APIEndpoint};
            var result = await client.PostAsync(url, content);
    

    使用 JSON.NET 解析响应:

    JObject joResponse = JObject.Parse(result);
    

    【讨论】:

      猜你喜欢
      • 2019-12-09
      • 1970-01-01
      • 2017-04-29
      • 1970-01-01
      • 1970-01-01
      • 2013-03-02
      • 2015-04-02
      • 2014-11-28
      • 2020-10-13
      相关资源
      最近更新 更多