将额外变量设置为卷曲连接字符串
问题描述:
我使用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文件,我会测试更新。
答
这会帮助你
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;
我试过,但无论是其不工作(如我是越来越回拨)或我不是保到我api2.php文件正确。我已经更新我的帖子与我目前的代码供您查看。 – user3436467
对不起,我的意思是说,我是_不打电话回来.. – user3436467