C#触发Jenkins构建-身份验证问题

时间:2019-02-05 22:56:36

标签: c# .net http jenkins restsharp

我正在尝试从C#应用程序启动Jenkins硒脚本,并且在身份验证方面遇到麻烦。我一直收到禁止的回应:

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

我不确定是否需要包括身份验证标头? 我还安装了构建授权令牌根插件和构建令牌触发器插件(了解其他地方的信息)。

更新

我在其他地方读过如何从詹金斯那里得到面包屑,所以我添加了一个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);

它仍然在响应中返回“请求中未包含有效面包屑”。 所以也许我没有在请求中正确设置面包屑?

更新 我还试图在Postman中启动它,只是看它是否不起作用。我得到了:

<h2>HTTP ERROR 403</h2>
    <p>Problem accessing /job/__SlackTestRun/buildWithParameters. Reason:

        <pre>    No valid crumb was included in the request</pre>
    </p>

在邮递员中,我将请求发送到上述相同的URL,并使用“ Jenkins-Crumb”参数和application / xml的内容类型设置标题。

没有运气!

Postman screenshot

0 个答案:

没有答案