DevOps API — C # Получение списка проектов с использованием клиентских библиотек

#c# #api #devops

#c# #API #devops

Вопрос:

Я пытаюсь заставить ЭТОТ пример работать (пример клиентских библиотек .Net) — однако все, что я пытался, приводит к ошибке:

Базовая аутентификация требует безопасного подключения к серверу.

В верхней части страницы, на которую я ссылался, есть еще один пример использования REST Api, и он отлично работает. По какой-то причине я просто не могу заставить это работать, используя библиотеки!

Мой код выглядит следующим образом:

             Uri uri = new Uri("http://adtfs:8080/tfs/{MyCompany}");
            string personalAccessToken = "MyPATString";
            VssBasicCredential credentials = new VssBasicCredential("", personalAccessToken);

            using (ProjectHttpClient projectHttpClient = new ProjectHttpClient(uri, credentials))
            {
                IEnumerable<TeamProjectReference> projects = projectHttpClient.GetProjects().Resu<
            }
 

Как я уже упоминал, использование того же URL и PAT в примере REST API работает нормально, но для библиотек я просто не могу выйти за рамки ошибки, упомянутой выше.

Я что-то упустил или кто-нибудь может предложить что-нибудь еще, что я мог бы попробовать, пожалуйста?

Комментарии:

1. Вероятно, это не так, но не могли бы вы изменить http => https с http://adtfs:8080/tfs /{ MyCompany} для https://adtfs:8080/tfs /{Моя компания}

2. @GI1 на самом деле это почти наверняка так. Бит «Требуется безопасное соединение» означает HTTPS вместо HTTP.

3. Кажется, это сделало это — спасибо! Не стесняйтесь добавлять в качестве ответа! Теперь я получаю еще одну ошибку (сбой рукопожатия произошел из-за неожиданного формата пакета.), И это происходит также при попытке использования примера REST API с Https. Я рассмотрю это отдельно. Не стесняйтесь обновлять ответ, который я должен принять.

4. Рукопожатие в https связано с сертификатом SSL, но я могу ошибаться, поэтому возможно, что клиент не работает из-за какой-то неправильной настройки SSL-сертификата на сервере или вы настроили самозаверяющий сертификат, которому еще не доверяет ваш компьютер, на котором запущен клиент? просто еще одно предположение, извините

Ответ №1:

Измените http=> https с http://adtfs:8080/tfs /{MyCompany} для https://adtfs:8080/tfs /{Моя компания} … самый простой ответ, который был, я думаю, работает, рад, что это помогло… но в качестве меры предосторожности я добавлю это для потомков: вы все равно должны использовать https, если сервер его поддерживает (было приложение, которое работало иногда медленно, иногда быстро, и я не мог понять, почему, пока не увидел это https://httpvshttps.com , оказывается, туннель https всегда воссоздавался, потому что я поставилhttp вместо https, и сервер был настроен на постоянное переключение на https).

Комментарии:

1. Еще раз спасибо за это! Я использовал старый URL-адрес, поскольку у нас также есть https, который я сейчас использую, и он отлично работает! Приветствую headsup!