PHP cURL POST Jenkins作业参数

时间:2016-07-02 06:22:59

标签: php windows curl jenkins php-curl

通过以下public static final int google_play_services_version=0x7f070000; 脚本触发Jenkins job

PHP

此脚本在 Mac 上成功运行,并且jenkins作业会被触发。如何使此脚本在 Windows 上运行?当我在 Windows 上运行PHP脚本时出现以下错误?

enter image description here

<?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); ?> 。另外,有没有更好的方法在PHP中执行cURL?看看这个:http://php.net/manual/en/book.curl.php,有人可以根据我上面的PHP脚本中的curl命令( Windows )指向一个示例吗?基于我的脚本中的curl命令的示例将是理想的。

2 个答案:

答案 0 :(得分: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);    

答案 1 :(得分: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\"}]}'";

请确保您没有任何混合匹配值。