2015-01-09 77 views
0

我試圖通過C# APIClient使用VersionOne API,但是我的元模型只能得到包含405異常的Unknown AssetType錯誤。我究竟做錯了什麼?這裏有一個代碼片段:版本1未知資產類型

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中看到:

Debugging in Visual Studio

在這種情況下,我使用一個斷點向您展示本地窗口中的問題。如果我真的想做任何事情,MetaException就會被拋出。

+0

可能會有助於向我們展示出現錯誤的位置。 – Hogan 2015-01-12 19:39:25

回答

1

這似乎解決它:

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

我敢發誓不管例如我用說成不包括端口。顯然這是錯誤的。對不起,麻煩傢伙,但謝謝你試圖幫助!


另外,驗證 mkunzi's answer也是有效的。您需要在端點末尾使用斜槓(例如 "meta.v1/"),否則它將無法工作。

1

我試過你的代碼並遇到同樣的問題。我能夠通過在每個端點(特別是元端點)的末尾添加「/」來使其工作。你可以試試嗎?

+0

我已經嘗試過(並且要徹底地再次嘗試一次),但我仍然得到了MetaException。 – ricksmt 2015-01-12 21:11:47

+0

只是想知道:當你試圖解決這個問題時,你有沒有代理?我想知道這是否會間接導致我的問題。 – ricksmt 2015-01-13 15:47:36

+0

我沒有使用代理服務器,因爲它沒有在第一次使用時失敗。目前正在研究這個問題。由於該錯誤發生在元終端無法正確解析的情況下,代理出現問題是可能的。 – mkunzi 2015-01-13 18:42:45