如何从MVC 4 Web应用程序中使用REST服务?

时间:2014-02-10 16:49:17

标签: asp.net-mvc-4 rest

有人可以指点一下如何从MVC 4 Web应用程序中使用外部REST服务吗?服务依赖于基于64编码的凭证的初始调用,然后返回用于进一步Web服务查询的令牌。

我找不到关于如何做这种事情的简单入门,有人可以帮忙吗? 我把这一切都用在了经典的ASP& JQuery但需要转移到MVC 4 Web应用程序。

1 个答案:

答案 0 :(得分:5)

您可以使用HttpClient课程。以下是如何发送GET请求并使用基本身份验证的示例:

var client = new HttpClient();
client.BaseAddress = new Uri("http://foo.com");
var buffer = Encoding.ASCII.GetBytes("john:secret");
var authHeader = new AuthenticationHeaderValue("Basic", Convert.ToBase64String(buffer));
client.DefaultRequestHeaders.Authorization = authHeader;
var response = client.GetAsync("/api/authenticate").Result;
if (response.IsSuccessStatusCode)
{
    string responseBody = response.Content.ReadAsStringAsync().Result;
}

检索到访问令牌后,您可以进行经过身份验证的调用:

var client = new HttpClient();
client.BaseAddress = new Uri("http://foo.com");
string accessToken = ...
var authHeader = new AuthenticationHeaderValue("Bearar", accessToken);
client.DefaultRequestHeaders.Authorization = authHeader;
var response = client.GetAsync("/api/bar").Result;
if (response.IsSuccessStatusCode)
{
    string responseBody = response.Content.ReadAsStringAsync().Result;
}