0

Jenkins job次のPHPスクリプトによるトリガー:

<?php

$testrun_id = "1744";
$cmd = "curl -X POST http://build:f9280f75396f83a0@mobile-jenkins.domain.com:8080/job/android-test/build --data-urlencode  json='{\"parameter\": [{\"name\":\"POST_RESULTS\", \"value\":\"true\"}, {\"name\":\"RUN_ID\", \"value\":\"{$testrun_id}\"}, {\"name\":\"CHECK_NAME\", \"value\":\"SampleAutomatedPlan\"}]}'";
exec($cmd,$result);

?>

このスクリプトはMacで正常に実行され、jenkins ジョブがトリガーされます。このスクリプトをWindowsで動作させるにはどうすればよいですか? Windowsで上記の PHP スクリプトを実行すると、次のエラーが発生します。

ここに画像の説明を入力

curl is already installed on windows machine. また、PHP で cURL を実行するためのより良い方法はありますか? これを見てください: http://php.net/manual/en/book.curl.php、誰かが上記の PHP スクリプト( Windows 用)の私の curl コマンドに基づく例を教えてくれますか? 私のスクリプトの curl コマンドに基づく例が理想的です。

4

2 に答える 2

2

ここから例を確認する必要がありますhttp://php.net/manual/en/curl.examples.php

ベローはあなたの場合のコードです、

$url = "http://build:f9280f75396f83a0@mobile-jenkins.domain.com:8080/job/android-test/buildWithParameters";     
$data = "POST_RESULTS=true&RUN_ID=".$testrun_id."&CHECK_NAME=SampleAutomatedPlan";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);

curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);  
curl_setopt($ch, CURLOPT_POSTFIELDS, $data); 

// $output contains the output string
$output = curl_exec($ch);

// close curl resource to free up system resources
curl_close($ch);    
于 2016-07-02T06:26:07.433 に答える
0

JSON のコンテンツ タイプを設定する必要があります

curl -H "Content-Type: application/json" -X POST http://build:f9280f75396f83a0@mobile-jenkins.domain.com:8080/job/android-test/build --data-urlencode  json='{\"parameter\": [{\"name\":\"POST_RESULTS\", \"value\":\"true\"}, {\"name\":\"RUN_ID\", \"value\":\"{$testrun_id}\"}, {\"name\":\"CHECK_NAME\", \"value\":\"SampleAutomatedPlan\"}]}'";

値が一致していないことを確認してください。

于 2016-07-02T06:44:12.190 に答える