2015-04-07 69 views
-1

我使用php/curl建立與外部api的連接。它工作正常,但現在我的連接字符串只引用表單中的一個變量。將額外變量設置爲捲曲連接字符串

我怎樣才能讓它引用多個?

這是怎麼看起來像現在

$curl_connection =curl_init('https://api.ssllabs.com/api/v2/analyze?host='.$_REQUEST['host']); 

當撥打電話上面的將是這樣的: https://api.ssllabs.com/api/v2/analyze主機= www.yourdomain.com

我的表格已經更新,包含了我要引用爲捲曲連接的一部分,更多的輸入值,需要看起來像這樣: https://api.ssllabs.com/api/v2/analyze主機= www.yourdomain.com & S = 69.54.183.66 & ignoreMismatch =上

每個基準由&符號分隔。

在我的HTML表單輸入名稱如下:

  • 主機
  • 小號
  • ignoreMismatch 還有其他的藏漢..但上面是一個樣本

我希望這足以讓你知道我正在嘗試做什麼。

這裏是我的jQuery的一部分/阿賈克斯

var hostName = $("input#host").val(); 
var ignoreMismatch = $("#ignoreMismatch").val(); 
var fromCache = $("#fromCache").val(); 
dataString = "host=" + hostName + "&fromCache=" + fromCache + "&ignoreMismatch=" + ignoreMismatch; 
enter code here 
$.ajax({ 
    type: "GET", 
    url: "api2.php", 
    data: dataString, 
    dataType: "json", 

我可以看到這部分工作。從我的Web控制檯中,我可以看到該URL已構建併發布到api2.php文件。

例如https://172.21.121.37/labs/api2.php?主機= ocsp.verisign.com & fromCache =上& ignoreMismatch =上

這裏是我的api2.php文件,該文件目前只接收主機=字符串設置。

<?php 
header("Content-Type: application/json"); 
//create cURL connection 
$curl_connection =curl_init('https://api.ssllabs.com/api/v2/analyze?host='.$_REQUEST['host']); 

///set options 
curl_setopt($curl_connection, CURLOPT_CONNECTTIMEOUT, 30); 
curl_setopt($curl_connection, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)"); 
curl_setopt($curl_connection, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($curl_connection, CURLOPT_SSL_VERIFYPEER, false); 
curl_setopt($curl_connection, CURLOPT_FOLLOWLOCATION, 1); 

//perform our request 
$result = curl_exec($curl_connection); 
echo $result; 
//close the connection 
curl_close($curl_connection); 
?> 

這是工作代碼的方式,但我只是想給你們更多的上下文,因爲我嘗試了一些提供的建議,他們沒有工作。如果有人可以幫助更新我的api2.php文件,我會測試更新。

回答

0

這會幫助你

foreach($_GET as $name => $value) { 
    $encoded .= urlencode($name).'='.urlencode($value).'&'; 
} 

$encoded = substr($encoded, 0, strlen($encoded)-1); 

$ch = curl_init("https://api.ssllabs.com/api/v2/analyze?" . $encoded); 
    curl_setopt($ch, CURLOPT_HEADER, 0); 
    curl_setopt($ch, CURLOPT_POST, 1); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    $output = curl_exec($ch);  
    curl_close($ch); 
    echo $output; 
+0

我試過,但無論是其不工作(如我是越來越回撥)或我不是保到我api2.php文件正確。我已經更新我的帖子與我目前的代碼供您查看。 – user3436467

+0

對不起,我的意思是說,我是_不打電話回來.. – user3436467