0

我只是在试验 Azure rest api 的过程中,为我即将进入的一些工作做准备......

在 node.js 中,我正在尝试使用以下代码获取由我的订阅托管的网络空间列表...

var websiteOptions = {
    hostname: 'management.core.windows.net',
    path: '/<<Subscription-ID>>/services/webspaces',
    method: 'GET',
    pfx: new Buffer(managementCert, 'base64'),
    strictSSL: true,
    headers: {
        'x-ms-version': '2013-06-01'
    }
};

websiteOptions.agent = new https.Agent(websiteOptions);

var request = https.request(websiteOptions,function(res){
    console.log('Status Code:', res.statusCode);
    console.log('Headers:', res.headers);

执行时,它返回..

<Error xmlns="http://schemas.microsoft.com/windowsazure"
   xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
   <Code>AuthenticationFailed</Code>
   <Message>The server failed to authenticate the request. Verify that the certificate is valid and is associated with this subscription.
   </Message>
</Error>

奇怪的是,如果我更换..

/<<subscription-ID>>/services/webspaces

和...

/<<subscription-ID>>/services/hostedservices

这个特定的调用就像一个魅力,返回一个托管服务列表——所以这让我相信我正在正确地编码/附加我的管理证书。

我在标题中尝试了各种 api 版本,但运气不佳,我也阅读了本文的各个部分,但运气不佳。

那么为什么我的凭据在 API 的一个部分而不是 websties 部分工作

我错过了什么,我敢肯定这很简单:|

4

1 回答 1

1

好吧,所以现在我觉得很愚蠢,这只是表明即使是大公司也可能会出错..

我已经玩得更多了,并决定在 Web 空间端点的 API 调用的末尾添加一个正斜杠......并且......

宾果游戏......它就像一种享受!

如果 Microsoft 在其 API 端点上保持一致,那就太好了,例如,托管服务端点不需要这个尾部斜杠。

此外,准确的错误消息也会很好,而不仅仅是报告无效的凭据异常!!!

一如既往..生活中简单的事情:(

于 2013-08-05T13:03:55.797 回答