首页 > 解决方案 > 使用 cURL 和 PHP 连接 api.dynadot.com 失败

问题描述

我正在为连接到服务器上的 DynaDot API 的客户端组装一些东西。我已在他们的仪表板中将服务器 IP 地址以及我自己的私有 IP 列入白名单。当我在浏览器中调用 api 时,我确实得到了返回的数据。但是当我通过服务器/脚本拨打电话时,我得到:

api.dynadot.com 443端口连接失败:连接超时

当我尝试在下面使用此代码时,这就是给我结果的原因

  $url = 'https://api.dynadot.com/api3.xml?key=' . $dynadot->key . '&command=search&domain0=zebodog.info&show_price=1';

  $curl_handle=curl_init();
  curl_setopt($curl_handle,CURLOPT_URL,$url);
  #curl_setopt($curl_handle,CURLOPT_CONNECTTIMEOUT,100);
  curl_setopt($curl_handle, CURLOPT_SSL_VERIFYPEER, false);
  curl_setopt($curl_handle, CURLOPT_CONNECTTIMEOUT, 0); 
  curl_setopt($curl_handle, CURLOPT_TIMEOUT, 400); //timeout in seconds
  curl_setopt($curl_handle,CURLOPT_RETURNTRANSFER,1);
  curl_setopt($curl_handle, CURLOPT_CAINFO, 'cert.pem');
  curl_setopt($curl_handle, CURLOPT_CAPATH, 'cert.pem');  

  $buffer = curl_exec($curl_handle);
  echo curl_error($curl_handle);

  curl_close($curl_handle);
  if (empty($buffer)){
      print "Nothing returned from url.<p>";
  }
  else{
      print $buffer;
  }

我很好奇我在这里缺少什么。我可以将 url 更改为 www.google.com 并且它工作正常,但它不会从 DynaDot 返回任何数据,但是,我可以在浏览器中提取相同的 url 并且它可以工作。DynaDot 说 ip 没有被阻止,我已经与托管公司核实过,他们没有轮换 ip 或任何东西。所以我很茫然。

标签: phpapisslcurl

解决方案


推荐阅读