Загрузить XML с URL Jenkins - PullRequest
       2

Загрузить XML с URL Jenkins

0 голосов
/ 22 октября 2018

Я пытаюсь загрузить XML с машинами Jenkins и их статусами.Когда я передаю содержимое XML в переменную, скрипт работает.Теперь моя проблема состоит в том, чтобы получить содержимое XML с URL Jenkins.

Я получаю 2 ошибки:

  • Первый:

    "Новый объект: не удается найти перегрузку для" PSCredential "иколичество аргументов: "2". "

  • Секунда:

    При использовании Invoke-WebRequest всегда происходит сбой при статусе HTTP 403 с сообщением:

    "В запрос не была включена действительная крошка"

    , хотя я ее и предоставляю.

Вот мой сценарий:

$url = '<jenkinsURL>/computer/api/xml'
$usr = 'username'
$pwd = 'password'

$userPassword = ConvertTo-SecureString -String $pwd -AsPlainText -Force
$userCredential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $usr, $userPassword

$headers = @{}
$headers.Add('Jenkins-Crumb','XXXXX')

Invoke-WebRequest -Uri $url -OutFile "D:\file.xml" -Credential $userCredential -Method POST -Headers $headers

1 Ответ

0 голосов
/ 22 октября 2018

Хорошо, после некоторой борьбы, большого количества чтения, испытаний и неудач, я наконец понял это, и это работает.Может быть достаточно специфичным для нашей среды, но, надеюсь, поможет кому-то.Теперь это кажется довольно простым, и я не знаю, почему мой исходный код не работал.Во всяком случае, вот оно:

$usr = 'username'
$pwd = 'password'
$url = "jenkins-url"

# --- get crumb ---
$headers = @{}
$headers.Add('Authorization', 'Basic ' + [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes("$(${usr}):$(${pwd})")))
$getCrumb = Invoke-RestMethod -Uri "$url/crumbIssuer/api/json" -Method GET -Headers $headers
$crumb = $getCrumb.crumb

# --- get Jenkins XML
$headers.Add('Jenkins-Crumb',$crumb)
$xmlData = (Invoke-WebRequest -Uri "$url/computer/api/xml" -Method GET -Headers $headers | Select-Object *).Content
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...