我在Tomcat上运行了一个Java应用程序。我想通过将用户的订阅详细信息作为输入来获取Microsoft Azure门户中安装的所有计算机的详细信息。优选地是REST API。我期待的响应与azure resource explorer中的响应相同。
我在this method之后使用此网址"https://management.core.windows.net/"+subscriptionId+"/services/disks"
提出了请求。它给我这样的结果
<Disks xmlns="http://schemas.microsoft.com/windowsazure" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<Disk>
<AttachedTo>
<DeploymentName>TEST1</DeploymentName>
<HostedServiceName>TEST1</HostedServiceName>
<RoleName>TEST1</RoleName>
</AttachedTo><OS>Linux</OS>
<Location>South Central US</Location>
<LogicalDiskSizeInGB>30</LogicalDiskSizeInGB>
<MediaLink>link.vhd</MediaLink>
<Name>TEST1-TEST1-0-20</Name>
<SourceImageName>imageName</SourceImageName>
当我用
调用相同的方法时“https://management.azure.com/subscriptions/”+ subscriptionid +“/ providers / Microsoft.Compute / virtualMachines?api-version = 2016-03-30”我收到401错误。
我甚至尝试下载SDK,ListVirtualMachines.java列出了大约600张图片,而不是我订阅的图片。
如何使用JAVA REST API实现它?
答案 0 :(得分:1)
根据我的经验,此问题是由身份验证方法引起的。我做了你提出的所有要求,我得到了同样的结果。 401错误代码表示&#34;未授权&#34;。您的身份验证方法适用于旧的REST API请求,但不适用于新的 新身份验证由Azure Active Directory(AD)处理。
以下内容可能对您有用。
希望它有所帮助。如有任何疑虑,请随时告诉我。