一尘不染

带参数的PHP cURL POST Jenkins作业

jenkins

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命令的示例将是理想的。


阅读 311

收藏
2020-07-25

共1个答案

一尘不染

您应该从此处检查示例http://php.net/manual/zh/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);
2020-07-25