C# qube-api的授权

C# qube-api的授权,c#,sonarqube,C#,Sonarqube,我正试图使用一个Api来获取c#应用程序中某些指标的值。我的代码如下所示: var httpWebRequest = (HttpWebRequest)WebRequest.Create("http://myServer/api/measures/component?componentKey=myProject&metricKeys=bugs,new_bugs"); httpWebRequest.Headers.Add("Authorization", token)

我正试图使用一个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", $"Basic {Convert.ToBase64String(Encoding.ASCII.GetBytes(apiKey + ":"))}"

“apiKey”后面的冒号非常重要。

您是否尝试过
httpWebRequest.Headers.Add(“授权”、“承载人”+令牌)(与持票人)这帮我搞定了,谢谢!我是这样使用您的提示的:
newhttpclient().DefaultRequestHeaders.Authorization=newauthenticationheadervalue(“Basic”,Convert.ToBase64String(Encoding.ASCII.GetBytes(token+“:”))其中
标记设置为从SQ复制的标记。