Я пытаюсь запустить сценарий селена Jenkins из приложения на C #, и у меня возникают проблемы с аутентификацией.Я получаю ЗАПРЕЩЕННЫЙ ответ:
No valid crumb was included in the request
Я использую плагин RestSharp, например:
var client = new RestClient(url);
var restRq = new RestRequest(Method.POST);
var response = client.Execute(restRq);
URL-адрес:
http://myjenkinsserver:8080/view/CJX/job/BUILDTORUN/buildWithParameters?token=THISISTHETOKEN&ENVIRONMENT=QA
Я не являюсьуверен, если мне нужно включить заголовки аутентификации?Я также установил корневой плагин Token Authorization Token и плагин Build Token (читайте о них где-то еще).
ОБНОВЛЕНИЕ
Я читал в другом месте, как получитькрошка от Дженкинса, поэтому я добавил GET, чтобы получить этот код, теперь он выглядит так:
var crumbClient = new RestClient("http://MYJENKINSSERVER:8080/crumbIssuer/api/json");
crumbClient.Authenticator = new HttpBasicAuthenticator("USERNAME", "PASSWORD");
var crumbRequest = new RestRequest(Method.GET);
var crumbResponse = crumbClient.Execute(crumbRequest);
var jenkinsCrumb = JsonConvert.DeserializeObject<JenkinsCrumbResponse>(crumbResponse.Content);
var client = new RestClient(url);
var restRq = new RestRequest(Method.POST);
restRq.AddHeader("Jenkins-Crumb", jenkinsCrumb.crumb);
var response = client.Execute(restRq);
В ответе по-прежнему возвращается «В запросе не было допустимой крошки».Так, может быть, я неправильно устанавливаю крошку в запросе?
ОБНОВЛЕНИЕ Я также пытаюсь запустить это в Почтальоне, просто чтобы посмотреть, не работает ли мой код.Я получаю:
<code><h2>HTTP ERROR 403</h2>
<p>Problem accessing /job/__SlackTestRun/buildWithParameters. Reason:
<pre> No valid crumb was included in the request
В почтальоне я отправляю запрос на тот же URL, упомянутый выше, и устанавливаю заголовки с параметром "Jenkins-Crumb" и типом содержимогозаявки / xml.
Не повезло!
![Postman screenshot](https://i.stack.imgur.com/0tO3o.png)