asp.net - 使用HTTP身份验证调用 REST API

  显示原文与译文双语对照的内容
0 0

我必须安全地调用 Rest API 。 我有一个 authenticate API,它返回一个标记。 我需要添加这个标记我正在调用的API 。

这是我知道调用 Rest API的常用方法。 我需要在这个请求中附加字符串标记。


//*** Establish the request 
 string token= getAuthenticate(username,password,out token );
 HttpWebRequest request = (HttpWebRequest)WebRequest.Create(lcUrl);
//*** Retrieve request info headers
 HttpWebResponse response = (HttpWebResponse)request.GetResponse();
 StreamReader loResponseStream = new StreamReader(response.GetResponseStream());
 string lcHtml = loResponseStream.ReadToEnd();
 response.Close();
 loResponseStream.Close();

时间: 原作者:

0 0

不知道有什么问题。 要从 Rest Uri 获得响应,你可以如下所示:


HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(yourUrl + token);//Append Here
 request.Method ="GET";//GET or POST Define Here
//http.Accept ="application/json";//Add if require
//http.ContentType ="application/json";//Add if require
 String test = String.Empty;
 using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
 {
 Stream dataStream = response.GetResponseStream();
 StreamReader reader = new StreamReader(dataStream);
 test = reader.ReadToEnd();
 reader.Close();
 dataStream.Close();
 }

Or 你可以通过 WebClient 使用简单请求:

例如:


WebClient webClient = new WebClient();
string json = string.Empty;
//Downloads JSon String
json = webClient.DownloadString("http://api.openweathermap.org/data/2.5/weather?q=London,uk");//Replace your URL + Token...

还有第三方组件也可用= RestSharp

原作者:
0 0

我在用 HttpClient,根本没有区别。 我觉得这种方法更干净 http://www.asp.net/web-api/overview/advanced/calling-a-web-api-from-a-net-client


var uri ="http://example.com";
using (HttpClient httpClient = new HttpClient())
{
 httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token_you_want_to_used);

 var response = await httpClient.GetAsync(uri);
 string result = await response.Content.ReadAsStringAsync();

}

原作者:
...