API-интерфейс Cisco FM C и клиент AutoRest - PullRequest
0 голосов
/ 08 апреля 2020

Я сгенерировал класс, связанный с файлом Cisco FM C Spe c, и все кажется правильным. Однако инструкция требует POST для получения заголовков HTTP, которые должны содержать значение заголовка X-auth-access-token. Насколько я понимаю, я должен использовать заголовки, полученные в ответ на приведенный ниже вызов API, на все запросы после. Однако я проверил и добавил, что для успеха достаточно одного.

https://fmcurl.site.com/api/fmc_platform/v1/auth/generatetoken

Я использовал следующую команду AutoRest для генерации пространства имен:

autorest --csharp --input-file=fmc.json --namespace=CiscoFmcApi --add-credentials

Теперь я понимаю, что Мне на самом деле не нужен add-credentials, потому что мне нужен только токен. Это я могу исправить позже.

Я искал пространство имен и не могу найти ничего связанного с каким-либо методом, который бы это делал. Ни в одном файле fmc.json.

Извлечение заголовков указанного выше URL-адреса generatetoken не является проблемой, но разве это лучший путь? Есть ли какой-нибудь причудливый способ сделать это, чего я не знаю?

Мой вопрос такой: как я могу использовать сгенерированный клиент автозапуска, но всегда использовать разные HttpHeaders или добавлять что-то в HttpHeaders по умолчанию?

Вот кодекс. Я пытался, я не знаю, сколько комбинаций после Googling, но ни одна не работала. Последним был TokenCredentials, который вы можете увидеть в коде.

            BasicAuthenticationCredentials fmcCredentials = new BasicAuthenticationCredentials()
            {
                UserName = FmcUsername,
                Password = FmcPassword
            } ;                

            // Create token
            //TokenCredentials tokenCredentials = new TokenCredentials("<token>");

            // Add token and server url to service instance
            var apiSvc = new CiscoFirepowerManagementCenterOpenAPISpecification(new Uri(FmcAddress), fmcCredentials);


            var ftdDevices = apiSvc.GetAllDevice();

Я всегда получаю 401 Несанкционированный результат.

Любые подсказки?

Спасибо,

...