VersionOne 未知资产类型

VersionOne Unknown AssetType

我正在尝试通过 C# APIClient 使用 VersionOne API,但我的元模型只收到 Unknown AssetType 错误包装 405 异常。我究竟做错了什么?这是一个代码片段:

VersionOneAPIConnector conn = VersionOneClientFactory.CreateClient(Endpoint.Data);
conn.WithVersionOneUsernameAndPassword("username", "password");
IMetaModel meta = new MetaModel(VersionOneClientFactory.CreateClient(Endpoint.Meta));
Services s = new Services(meta, conn);

如果有帮助,这里是 CreateClient 方法:

public static VersionOneAPIConnector CreateClient(Endpoint e)
{
    StringBuilder url = new StringBuilder("https://www#.v1host.com/MyCompany/");
    switch (e)
    {
        case Endpoint.Data: url.Append("rest-1.v1"); break;
        case Endpoint.Localization: url.Append("loc-2.v1"); break;
        case Endpoint.Meta: url.Append("meta.v1"); break;
        case Endpoint.Query: url.Append("query.v1"); break;
    }
    return new VersionOneAPIConnector(
        url.ToString(),
        proxyProvider: new ProxyProvider(
            new Uri("http://proxy.server"),
            "proxy_username",
            "proxy_password"
    ));
}

这是我在 Visual Studio 中看到的:

在本例中,我使用断点向您展示了 Locals window 中的问题。如果我真的尝试做任何事情,就会抛出 MetaException。

我试过你的代码,运行遇到了同样的问题。我能够通过在每个端点(特别是元端点)的末尾添加一个“/”来使其工作。你能试试吗?

这似乎可以解决问题:

proxyProvider: new ProxyProvider(
    new Uri("https://proxy.server:port"),
    "proxy_username",
    "proxy_password"
)

我可以发誓我使用的任何示例都不包含端口。显然那是错误的。抱歉给您带来麻烦,但感谢您的帮助!


此外,验证 也是有效的。您需要在端点末尾使用斜线(例如 "meta.v1/"),否则它将不起作用。