Java wget azure REST API运行时授权失败

Java wget azure REST API运行时授权失败,java,azure,azure-vm-scale-set,azure-monitoring,Java,Azure,Azure Vm Scale Set,Azure Monitoring,我正在尝试使用RESTAPI收集azure指标。我有一个azure帐户的免费订阅 我使用以下wget来获取json消息 wget https://management.azure.com/subscriptions/XXXXXXX/resourceGroups/RG_SOUTH_INDIA/providers/Microsoft.Compute/virtualMachineScaleSets/linuxscal/metrics?api-version=2014-04-01 XXXXXXX-是我

我正在尝试使用RESTAPI收集azure指标。我有一个azure帐户的免费订阅

我使用以下wget来获取json消息

wget https://management.azure.com/subscriptions/XXXXXXX/resourceGroups/RG_SOUTH_INDIA/providers/Microsoft.Compute/virtualMachineScaleSets/linuxscal/metrics?api-version=2014-04-01
XXXXXXX-是我的订阅id。

我收到以下错误消息

Resolving management.azure.com... 13.67.231.219
Connecting to management.azure.com|13.67.231.219|:443... connected.
HTTP request sent, awaiting response... 401 Unauthorized
Authorization failed.
我的订阅/授权有什么问题


提前感谢你们的帮助,伙计们!!我卡住了

通过指定选项
--user
--ask password
wget将请求凭据。下面是一个例子。更改用户名和链接以满足您的需要

wget --user=username --ask-password https://YOUR_URL

您需要在通话中包含一个带有
承载
令牌的
授权
报头:

GET /subscriptions?api-version=2015-01-01 HTTP/1.1
Host: management.azure.com
Authorization: Bearer YOUR_ACCESS_TOKEN
Content-Type: application/json
看看armclient,因为您可以手动(或卷曲):

您的
/metrics
调用变为:

client.get('/resourceGroups/RG_SOUTH_INDIA/providers/Microsoft.Compute/virtualMachineScaleSets/linuxscal/metrics', { 'api-version': '2014-04-01' })
  .then((res) => {
    console.log(res.body);
    console.log(res.headers);
  })
  .catch((err) => {
    console.log(err);
  });

您不需要和“API密钥”或类似的密钥来提出请求?否则,任何人都可以使用您的订阅idU点击此链接。您的订阅idU没有用于授权的用户名/密码吗?或者只有链接就足够了?这只适用于HTTP基本身份验证-不适用于Azure ARM,因为Azure ARM需要令牌:
Authorization:Bearer-token=
谢谢@evilSnobu!!这是真的,我无论如何都不会用wget。我将使用Java。当我使用Java调用RESTAPI时,仍然会遇到相同的错误,即身份验证错误。如果我能得到它的java代码,那将是很有帮助的!。。。再次感谢!!
client.get('/resourceGroups/RG_SOUTH_INDIA/providers/Microsoft.Compute/virtualMachineScaleSets/linuxscal/metrics', { 'api-version': '2014-04-01' })
  .then((res) => {
    console.log(res.body);
    console.log(res.headers);
  })
  .catch((err) => {
    console.log(err);
  });