0

我正在尝试通过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 中看到的:

在 Visual Studio 中调试

在这种情况下,我使用断点向您显示 Locals 窗口中的问题。如果我真的要尝试做任何事情,就会抛出 MetaException。

4

2 回答 2

1

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

于 2015-01-12T20:36:01.020 回答
1

这似乎解决了它:

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

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


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

于 2015-01-14T17:51:13.000 回答