有人可以指点一下如何从MVC 4 Web应用程序中使用外部REST服务吗?服务依赖于基于64编码的凭证的初始调用,然后返回用于进一步Web服务查询的令牌。
我找不到关于如何做这种事情的简单入门,有人可以帮忙吗? 我把这一切都用在了经典的ASP& JQuery但需要转移到MVC 4 Web应用程序。
答案 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;
}