【问题标题】:CURL request with intranet applications带有 Intranet 应用程序的 CURL 请求
【发布时间】:2020-02-10 14:21:27
【问题描述】:

更新 2:

print_r(curl_error($ch));

OpenSSL SSL_connect:SSL_ERROR_SYSCALL 连接到 10.10.10.10:8339

我在安装了 WAMP 的公司网络上运行。我尝试使用 Restlet Client 连接到 Internet API,并且能够毫无问题地发出 GET 请求。

我使用浏览器请求尝试了 API 调用,它工作正常。

我无法在我本地的 WAMP 服务器中使用 PHP CURL 请求进行这些 API 调用。

我尝试使用在 CURL 中启用的代理,但没有成功。我尝试启用 ERROR_Reporting(E_ALL) 但也看不到任何错误。

这是我的代码。

$url = "https://10.10.10.10:8339/beta/targets/1234234123/isolated/1567687263?samples=true";
$username="apiuser";
$password="apipassword";
//$proxy = 'proxy:8080';
//$proxyauth = 'proxyuser:proxypassword';

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
//curl_setopt($ch, CURLOPT_PROXY, $proxy);
//curl_setopt($ch, CURLOPT_PROXYUSERPWD, $proxyauth);
curl_setopt($ch, CURLOPT_USERPWD, "$username:$password");
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
$output = curl_exec($ch);
$info = curl_getinfo($ch);
print_r($output);
//print_r($info);
curl_close($ch);

上面的输出是空白的

【问题讨论】:

  • 看起来工作正常...您能详细说明问题所在吗?
  • $output$info的内容是什么?
  • @Scuzzy - 上面的输出是 Resource id #2
  • @Brad - 我假设与代理有关。
  • 唯一的“输出”语句是print_r($ch);。既然$ch 是您的 curl 句柄(一种资源),您为什么期望结果会有所不同?

标签: php rest api curl wamp


【解决方案1】:

您遇到的问题是您在未指定主机名的情况下连接到 HTTPS 服务器。因此,无法验证属于 HTTPS 的主机名。

最好的办法是使用主机名。而且,如果您使用的是自签名证书,请将它们安装在您的服务器上,以便对其进行验证。

您可以在 cURL 中禁用此检查:

curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);

另请参阅:https://stackoverflow.com/a/15237205/362536

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-06-11
    • 1970-01-01
    • 2016-01-04
    • 1970-01-01
    • 2016-02-08
    • 2016-06-14
    • 2021-04-15
    • 1970-01-01
    相关资源
    最近更新 更多