У меня есть приложение на C ++ (QT5), и теперь я хотел подключиться к TFS и получить проекты и некоторые другие детали проекта. Основное намерение — вытащить тестовые наборы из MTM.
Столько примеров использования их API с C # и простое решение этой проблемы. Однако мне не везет с C ++. Я не уверен, что делать дальше, должен ли я написать свой собственный веб-сервис с использованием SDK, а затем использовать его или TFS обеспечивает поддержку SOAP.
Я думал, что он сделал и, следовательно, запустил Fiddler, чтобы добраться до него, но никогда не видел метод аутентификации нигде. Все запросы, которые я видел, были 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 и использовать его с моим приложением.
Благодарю.
Нет способа обойти API.
Хотя вы можете напрямую подключаться к веб-сервисам для TFS, этот метод не поддерживается. Ваш код может сломаться при любом обновлении TFS. Я бы порекомендовал вам создать веб-сервис с помощью c #, а затем вызвать его из своего кода. Я ожидаю, что остальные API-интерфейсы станут доступны в определенном месте.
Другой вариант, хотя я сомневаюсь в поддержке, — это создать гибридную DLL, C ++ Managed, которая может вызывать API C #. Затем вы можете вызвать гибридный код из собственного кода. Это еще один дополнительный уровень оболочки, и он действительно предназначен для того, чтобы помочь командам перейти с C ++ на C #, но я верю, что он будет работать.