cURL перестала работать. Я начал получать эту ошибку (она работала нормально до нескольких часов назад).
Я использую расширение cURL для PHP. Я нашел некоторое решение для командной строки curl, но, к сожалению, я не понимаю их: / и я не знаю, как перенести их в флагов PHP cURl.
cURL conf:
$curl=curl_init(); curl_setopt($curl, CURLOPT_URL, "https://pln.bitcurex.com/data/ticker.json"); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($curl, CURLOPT_SSLVERSION, 3); curl_setopt($curl, CURLOPT_TIMEOUT, 10); curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($curl, CURLOPT_USERAGENT, $this->useragent); curl_setopt($curl, CURLOPT_VERBOSE, 0); curl_setopt($curl, CURLOPT_HEADER, FALSE); curl_setopt($curl, CURLOPT_HTTPHEADER, $this->headers); if(substr($url, 0, 5)=='https') curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 2); if($this->ciastko) { curl_setopt($curl, CURLOPT_COOKIEJAR, $this->ciastko); curl_setopt($curl, CURLOPT_COOKIEFILE, $this->ciastko); } if($this->post) { if( is_array($this->post) && count($this->post) > 0 ) { $postdata = http_build_query($this->post,'','&'); } elseif( is_string($this->post) ) { $postdata = $this->post; } else $postdata = ''; curl_setopt($curl, CURLOPT_POST, 1); curl_setopt($curl, CURLOPT_POSTFIELDS, $postdata); } $wynik=curl_exec($curl);
ошибка:
35: ошибка: 14094410: Подпрограммы SSL: SSL3_READ_BYTES: сбой вызова подтверждения sslv3
Любые идеи, как это исправить?
Я знаю, что это немного устаревшая проблема, но у меня есть решение для других:
curl_setopt($ch, CURLOPT_SSLVERSION, 3); curl_setopt($ch, CURLOPT_SSL_CIPHER_LIST, 'SSLv3');
Я просто перехожу от
curl_setopt ($ curl, CURLOPT_SSLVERSION, 3);
в
curl_setopt ($ curl, CURLOPT_SSLVERSION, 4);
Входные значения:
$params = Array ( "username" => "XXXXXXXXXX", "password" => "XXXXXX" ); $path ='https://www.XXXXXXXX.com/xx/xxx/format/json/';
Функция:
function curlpost($parameters, $path){ $apiUrl = $path; $curl_handle = curl_init(); curl_setopt($curl_handle, CURLOPT_URL, $apiUrl); curl_setopt($curl_handle, CURLOPT_BUFFERSIZE, 1024); curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, TRUE); curl_setopt($curl_handle, CURLOPT_SSL_VERIFYPEER, TRUE); curl_setopt($curl_handle, CURLOPT_SSL_VERIFYHOST, TRUE); curl_setopt($curl_handle, CURLOPT_POST, TRUE); curl_setopt($curl_handle, CURLOPT_PROXY, ''); curl_setopt($curl_handle, CURLOPT_SSLVERSION, 4); curl_setopt($curl_handle, CURLOPT_POSTFIELDS, $parameters); $response = curl_exec($curl_handle); $content = curl_exec( $curl_handle ); $err = curl_errno( $curl_handle ); $errmsg = curl_error( $curl_handle ); $header = curl_getinfo( $curl_handle ); curl_close( $curl_handle ); $header['errno'] = $err; $header['errmsg'] = $errmsg; $header['content'] = $content; curl_close($curl_handle); return $header; }