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

Ric*_*ard 1 rest asp.net-mvc-4

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

我找不到关于如何做这种事情的简单入门,有人可以帮忙吗?我将所有这些工作在经典的ASP和JQuery中,但需要转移到MVC 4 Web应用程序.

Dar*_*rov 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;
}
Run Code Online (Sandbox Code Playgroud)

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

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;
}
Run Code Online (Sandbox Code Playgroud)