无法使用node.js访问BigCommerce WebDAV

时间:2018-12-28 09:05:16

标签: node.js bigcommerce webdav

如果我通过Cyber​​duck访问BigCommerce WebDAV,事情就可以正常工作。但是,我想以编程方式执行此操作。因此,我编写了以下代码:

const { createClient } = require("webdav");

async function run() {
    const client = createClient(
        "https://mystore.mybigcommerce.com/dav",

        {
            username: "myemail@email.com",
            password: "mypassword"
        }
    );

    const contents = await client.getDirectoryContents("/"); 
}

run();

这是我获取目录内容的代码。我从https://github.com/perry-mitchell/webdav-client#usage复制了它。我从BigCommerce网站复制了电子邮件和密码。

运行脚本后,计算机返回(node:32672) UnhandledPromiseRejectionWarning: Error: Request failed with status code 401

如果我在网络浏览器中输入URL并输入正确的用户名和密码,它将返回以下内容:

<d:error xmlns:d="DAV:" xmlns:s="http://sabredav.org/ns">
    <s:exception>Sabre\DAV\Exception\NotImplemented</s:exception>
    <s:message>
        There was no plugin in the system that was willing to handle this GET method. Enable the Browser plugin to get a better result here.
    </s:message>
</d:error>

希望你们能知道发生了什么,谢谢。

1 个答案:

答案 0 :(得分:0)

您需要一个支持Digest Auth的客户端,而不仅仅是Basic。似乎有人在谈论向您使用的WebDAV客户端添加摘要支持。此PR可能是一个很好的起点:

https://github.com/perry-mitchell/webdav-client/pull/96