2017-05-15 69 views
0

我想「祕密」這個curl命令轉變爲角HTTP POST和我找不出如何發送這個命令是用來啓動在詹金斯新工作--user角2:崗位職責上詹金斯

捲曲-X POST 'http://10.1.11.160:8080/job/Job1/buildWithParameters?GW_IP=10.1.11.51&verbosity=aaa' --user角:角

我試了很多東西 - 我無法添加額外的頭 我使用基本的HTTP從「@角/ HTTP

這是我的代碼,不添加標頭

runTest(){ 


var Url = "http://10.1.11.160:8080/job/"; 
    var JobName = "job1" + "/"; 
    var Parameters = 'GW_IP=10.1.11.51&verbosity=high'; 
    var Action = "buildWithParameters?"; 
    var Job = Url + JobName + Action + Parameters ; 
    var Body = ''; 


    return this._http.post(Job, Body) 
     .map(res => res.json()); 
} 

這就是我試圖完成:

enter image description here

回答

1

如果我正確地讀documentation,你仍然可以使用config對象作爲第三個參數設置頭。

return this._http.post(Job, Body, {headers:{'Authorization': 'whatcurlshowedyou'}}) 
    .map(res => res.json()); 

您可能還想遵循風格指南,並使用camelCase命名您的本地人爲了便於閱讀。

+0

我已經試過了,它導致POST成爲pcap I記錄中的OPTIONS,並且它沒有添加標頭 –

+0

由於您來自網絡,您將必須處理跨源資源共享(CORS)瀏覽器和您的應用程序可能不是由Jenkins服務器提供的。 https://enable-cors.org/ – nitind

0

好,我設法解決這個 這裏是幫助其他人使用此解決方案:

  1. 安裝CORS插件詹金斯 https://wiki.jenkins-ci.org/display/JENKINS/Cors+Filter+Plugin

  2. 配置上詹金斯

    的CORS支持
    • 啓用它
    • add:Access-Control-Allow-Methods:GET,PUT,OPTIONS,DELETE,POST-或者OPTIONS,POST(我認爲它會起作用)
    • add:訪問控制 - 允許 - 標題:授權
    • 添加:訪問控制允許-起源 - 根據需要
    • 我也不得不重新啓動詹金斯
  3. 這裏是什麼我使用的代碼:

    createAuthorizationHeader(headers: Headers){ headers.append('Authorization', 'Basic ' + btoa('angular:angular')); headers.append('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8'); }

    runTest(){ var url = " http://10.1.11.160:8080/job/ "; var jobName = "job1" + "/"; var parameters = 'GW_IP=10.1.11.51&verbosity=high'; var action = "buildWithParameters?"; var job = url + jobName + action + parameters ; var body = '';

    let headers = new Headers(); this.createAuthorizationHeader(headers);

    return this._http.post(job, body, {headers: headers}) .map(res => res.json());

    }