【问题标题】:cURL with PHP - HTTP cURL to HTTPScURL 与 PHP - HTTP cURL 到 HTTPS
【发布时间】:2014-01-13 19:14:11
【问题描述】:

我有以下一点 PHP,它可以在本地运行(通过 apache 和 localhost),但不能在我的主机上运行 - $response 始终为空:

function get_data($url) {
        $ch = curl_init();
        $timeout = 5;
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_NOBODY, true);
        curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
        $data = curl_exec($ch);
        curl_close($ch);
        return $data;
    }

    $api_key = 'my_api_key'; 

    $randomString = generateRandomString(10);
    $endLabel = sha1(md5($randomString));
    $user_id = $endLabel;

    $amount_doge = '5'; 

    $url = "https://dogeapi.com/wow/?api_key=".$api_key."&a=get_new_address&address_label=".$user_id;
    $response = get_data($url);

我想知道这是否是因为我托管在 HTTP 上(没有 SSL 选项)并且我正在调用 HTTPS 域?如果是这样,有没有办法解决这个问题?我试过curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 但它似乎没有做任何事情:(

【问题讨论】:

  • 你试过 CURLOPT_SSL_VERIFYHOST=False
  • @user1844933 - 恐怕也什么都不返回:(
  • 你在你的服务器上安装了 libcurl 包吗? :)
  • 是的,cURL 安装正确。版本 7
  • 投反对票。我想知道为什么?

标签: php curl cross-domain


【解决方案1】:

尝试在$data = curl_exec($ch); 之后使用echo curl_error($ch) 看看curl 说什么 它会告诉你发生了什么

【讨论】:

  • 啊,我现在收到error:14077458:SSL routines:SSL23_GET_SERVER_HELLO:reason(1112)
  • 尝试设置此选项curl_setopt($ch, CURLOPT_SSLVERSION,3);
  • 太棒了——我爱你!
  • 那是握手期间的一个老 openssl 错误
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-15
  • 2011-11-17
  • 2012-05-02
  • 1970-01-01
相关资源
最近更新 更多