2014-09-29 121 views
1

我有一個C++(QT5)應用程序,現在我想連接到TFS並獲取項目和項目的其他一些細節。主要目的是從MTM中提取測試用例。使用C++使用SOAP連接到TFS

很多使用C#的API和輕鬆解決這個問題的例子。然而,我沒有這樣的運氣與C++。我不知道如何繼續,我應該使用SDK編寫自己的Web服務,然後使用它或者TFS是否提供SOAP支持。

我以爲它做到了,因此開除了小提琴手,但從未在任何地方看到auth方法。我看到的所有請求都是GET。有如下所示的NTLM授權。

GET http://localhost:8080/tfs HTTP/1.1 
Host: localhost:8080 
User-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64; rv:30.0) Gecko/20100101 Firefox/30.0 
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 
Accept-Language: en-US,en;q=0.5 
Accept-Encoding: gzip, deflate 
Connection: keep-alive 
Authorization: NTLM TlRMTVNTUAABAAAAB4IIogAAAAAAAAAAAAAAAAAAAAAGAvAjAAAADw== 

我可以有任何建議或提示我將不勝感激。我希望有一些使用C++的文檔或示例/示例。

如果它具有SOAP功能(WSDL),我可以使用KdSoap並將其用於我的應用程序。

謝謝。

+0

我剛纔看到一個新的[REST API(http://blogs.msdn.com/b/bharry/archive/2014/05/12/a-new-api-for- visual-studio-online.aspx)已經發布,但它看起來像它的在線TFS。恐怕我可能不得不編寫自己的服務來使用TFS API。我希望有人救我在這裏。 – 2014-09-29 14:31:51

回答

0

無法繞過API。

雖然您可以直接連接到TFS的Web服務,但不支持此方法。您的代碼可能會因TFS的更新而中斷。我建議你用c#創建一個web服務,然後從你的代碼中調用它。我希望其餘的api將會在某些時候在內部使用。

另一種選擇,儘管我對支持的懷疑可能是創建一個可以調用C#API的混合DLL,C++ Managed。然後您可以從本機代碼中調用混合代碼。這是一個額外的包裝程序,其設計真的是幫助團隊從C++遷移到C#,但我相信它會起作用。

http://en.wikipedia.org/wiki/C%2B%2B/CLI

+0

謝謝@MrHinsh,我很害怕這個。我會留下這個打開,但看看我是否得到更多的回覆.. – 2014-09-30 10:52:05

+0

我更新了C++ \ CLI包裝選項。 – 2014-09-30 14:39:06

+0

再次感謝@MrHinsh我也會探討這個選項。 – 2014-09-30 15:26:34