401 (Unauthorized)在尝试访问REST API时发生错误。
401 (Unauthorized)在尝试访问REST API时发生错误。
基本上,我正在尝试连接到在线的REST API。很简单吧?
然而,每当我尝试连接时,我都会遇到401(未经授权)错误。我正在使用C#控制台应用程序进行测试,我还尝试使用PUTMAN(Google Chrome应用程序来查看HTTP请求)。
这是我使用的API链接:https://community.dynatrace.com/community/display/APMSAASDOC/Login+-+REST+API
我按照所有列出的步骤进行操作。我知道我的用户名和密码是正确的(已登录到Dynatrace Portal)。有人知道可能出了什么问题吗?以下是我的代码(由于明显的原因,我已删除了实际的用户名和密码):
问题出现的原因可能是在client.GetAsync
方法调用的末尾,HTTP/1.1
字符串可能被转换为password=MYPASSWORD%20HTTP/1.1
(或类似的字符串),从而导致错误。尝试去除该部分,看看是否能够解决问题。
另外一个可能的解决方案是参考这个帖子的答案。总结起来,似乎需要在请求中添加一个斜杠,并且GetAsync
方法的字符串不能以斜杠开头。
不幸的是,这种方法并没有起作用:/ 我之前也认为这可能是问题的原因,但是没有任何改变。
当尝试访问REST API时出现401(未经授权)的错误。
问题的原因是在GET url的末尾删除" HTTP/1.1",它被添加到密码的末尾,导致出现401错误。
解决方法是从GET url的末尾删除" HTTP/1.1"。下面是一个示例代码:
// 原始GET url
var url = "https://api.example.com/restapi?key=value HTTP/1.1";
// 修正后的GET url
var correctedUrl = "https://api.example.com/restapi?key=value";
通过删除" HTTP/1.1",我们可以解决401错误。这样,我们就可以成功访问REST API了。