首页 > 解决方案 > 在 stream_context_create 上更改 curl

问题描述

请帮助我使用 stream_context_create 获取数据。使用 curl 工作:

$curl = curl_init();
        curl_setopt($curl, CURLOPT_HTTPHEADER, array("Content-Type: application/json"));
        curl_setopt($curl, CURLOPT_URL, $url);
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($curl, CURLOPT_SSL_CIPHER_LIST, 'ecdhe_rsa_aes_128_gcm_sha_256');
        curl_setopt($curl, CURLOPT_VERBOSE, true);
        curl_setopt($curl, CURLOPT_TIMEOUT, 10);
        $out = curl_exec($curl);
        $curlError = curl_error($curl);        
        $result = json_decode($out, true);   
        curl_close($curl);

我试试这个:

$opts = array(
    'ssl' => array(
        'verify_peer' => false,
        'verify_peername' => false

    ),
    'http' => array(
        'method' => 'GET',
        'header' =>
            'Content-Type: application/json'
    )
);

$context = stream_context_create($opts);

$result = file_get_contents('$url', false, $context);

var_dump($result);

但是弄错了。我的代码有什么问题?

标签: phpcurl

解决方案


我得到了决定:

$opts = array(
            'ssl' => array(
                'verify_peer' => false,
                'verify_peer_name' => false,
                'allow_self_signed' => true
            ),
            'http' => array(
                'timeout' => 5,
                'method' => 'GET',
                'header' =>
                    'Content-type: Content-type: application/json',
                'ignore_errors' => true,
                'max_redirects' => 0
            )
        );

        $context = stream_context_create($opts);
        $out = file_get_contents($url, false, $context);
        $result = json_decode($out, true);

推荐阅读