使用C++使用SOAP连接到TFS

问题描述:

我有一个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

无法绕过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