Вызов внешнего URL с параметром в PHP - PullRequest
0 голосов
/ 07 июня 2018

Я работал над вызовом внешнего URL из PHP (при отправке) с параметром.Я посмотрел другой вариант (curl, file_get_contents и т. Д.), Но, похоже, ничего не работает.

Вот так должен выглядеть окончательный URL:

http://XXXXX:8080/job/Clone_CentOS_VM/buildWithParameters?token=smlvyKf6tS&vm_user=temp&memory_mb=1024&num_cpus=1&eth0_ip=172.XX.XX.XXX&eth1_ip=192.XX.XX.XX

И с параметром itвыглядит так:

http://XXXXX:8080/job/Clone_CentOS_VM/buildWithParameters?token=smlvyKf6tS&vm_user=$login&memory_mb=$memory&num_cpus=$cpu&eth0_ip=$ip_172&eth1_ip=$ip_192";

Ответы [ 4 ]

0 голосов
/ 07 июня 2018

Создайте свой URL со всеми определениями param в виде строки, затем используйте file_get_contents () или curl () .

$url = "http://XXXXX:8080/job/Clone_CentOS_VM/buildWithParameters?token=smlvyKf6tS&vm_user=".$login."&memory_mb=".$memory."&num_cpus=".$cpu."&eth0_ip=".$ip_172."&eth1_ip=".$ip_192;
  1. с file_get_contents () :

    file_get_contents ($ url);

  2. с curl ()

            $request_headers[] =  'Content-Type:application/json';
            if (!function_exists('curl_init')){
                die('cURL is not installed. Install and try again.');
            }
            $ch = curl_init();
            curl_setopt($ch, CURLOPT_URL, $url);
            curl_setopt($ch, CURLOPT_HTTPHEADER, $request_headers);
            curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
            curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
            curl_setopt($ch, CURLOPT_TIMEOUT, 30);
            $result = curl_exec($ch);
    
0 голосов
/ 07 июня 2018

Вы должны использовать правильные символы кавычек " вместо ' вокруг строки, или вы можете объединить параметры / строки, используя .

Возможное решение:

$url = 'http://XXXXX:8080/job/Clone_CentOS_VM/buildWithParameters?token=smlvyKf6tS&vm_user='.$login.'&memory_mb='.$memory.'&num_cpus='.$cpu.'&eth0_ip='.$ip_172.'&eth1_ip='.$ip_192;
0 голосов
/ 07 июня 2018

Создайте свой URL как строку, затем используйте file_get_contents()

$login = "userName";
$memory = "memoryValue";
$cpu = "cpuValue";
$ip = "127_0_100_"; 

$url = "http://XXXXX:8080/job/Clone_CentOS_VM/buildWithParameters?token=smlvyKf6tS&vm_user=" . $login . "&memory_mb=" . $memory . "&num_cpus=" . $cpu . "&eth0_ip=" . $ip . "_172&eth1_ip=" . $ip . "_192";

$content = file_get_contents($url);
0 голосов
/ 07 июня 2018

Вы не избежали переменных, которые вы использовали при создании URL.Если вы поместили переменные в строку, вам нужно указать, что это за переменная и что это за строка.

Например, вы можете использовать скобки вокруг переменных:

$url = "http://XXXXX:8080/job/Clone_CentOS_VM/buildWithParameters?token=smlvyKf6tS&vm_user={$login}&memory_mb={$memory}&num_cpus={$cpu}&eth0_ip={$ip_172}&eth1_ip={$ip_192}";

Илиисключить их из строки:

$url = "http://XXXXX:8080/job/Clone_CentOS_VM/buildWithParameters?token=smlvyKf6tS&vm_user=" . $login . "&memory_mb=" . $memory . "&num_cpus=" . $cpu . "&eth0_ip=" . $ip_172 . "&eth1_ip=" . $ip_192;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...