【发布时间】:2018-03-22 22:32:03
【问题描述】:
我正在尝试使用 Api 通过 c# 应用程序获取某些指标的值。我的代码如下所示:
var httpWebRequest = (HttpWebRequest)WebRequest.Create("http://myServer/api/measures/component?componentKey=myProject&metricKeys=bugs,new_bugs");
httpWebRequest.Headers.Add("Authorization", token);
httpWebRequest.ContentType = "application/json";
httpWebRequest.Method = "GET";
try
{
var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
string result;
using (var streamreader = new StreamReader(httpResponse.GetResponseStream()))
{
result = streamreader.ReadToEnd();
}
var joResponse = JObject.Parse(result);
var measures = (JArray)joResponse["component"]["measures"];
}
catch (Exception e)
{
Console.WriteLine(e);
throw;
}
当我将相同的 API 写入浏览器的地址框时,我得到了我寻找的结果。标头的令牌是由我的服务器生成的。但是由于某种原因,当我试图在代码中获取这个 httpwebrequest 的响应时,我发现了一个错误 401。我做错了什么?
或者,我没有使用令牌,而是尝试使用凭据:
httpWebRequest.Credentials = new NetworkCredential(name, password);
结果是一样的。
编辑:
我尝试使用标题
httpWebRequest.Headers.Add("Authorization", "Bearer " + token);
相反。这也没有成功。
【问题讨论】:
-
你试过
httpWebRequest.Headers.Add("Authorization", "Bearer " + token);(带有Bearer)