Я сгенерировал класс, связанный с файлом 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 Несанкционированный результат.
Любые подсказки?
Спасибо,