@EvelynWaugh

Почему PHP Curl возвращает false?

Добрый день, есть сайт на вордпресс. На локалке запросы посылаются нормально с помощью wp_remote_get(), а вот с сайта на сервере (https) возвращает false как на wp_remote_get так и на curl:
<?php
$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'http://93.77.254.132:8899/88F1DC4C-***-497C-AFEF-A2E9D33C0056/UserAuthentication?****',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_SSL_VERIFYHOST => false,
	CURLOPT_VERBOSE => 0
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
echo '111';
var_dump($response);

Может нужно как-то по особому посылать учитывая что тут IP+ порт : 93.77.254.132:8899. А может потому что шлётся с https на http, или надо что-то прописать что принимается xml? Помогайте.
UPD: curl_error = Failed to connect to 93.77.254.132 port 8899: Connection refused
На всякий случай вордпресс wp_remote_get добавлю:
$response = wp_remote_get("http://93.77.254.132:8899/88F1DC4C-***-497C-AFEF-A2E9D33C0056/UserAuthentication?***");
	$data = wp_remote_retrieve_body($response);
	// var_dump($data);
	// $xml = simplexml_load_string(mb_convert_encoding($data, 'UTF-8', 'UTF-16'));
	// $convert = mb_convert_encoding($data, 'UTF-8', 'UTF-16LE');
	$convert = mb_detect_encoding($data, "UTF-8", true);
	// var_dump($convert);
	$replace  = str_replace('encoding="utf-16"', 'encoding="utf-8"', $data);
	// var_dump($replace);
	$xml = simplexml_load_string($replace);
	// var_dump($xml);
	$encoded_data = json_encode($xml);
	$decoded_data = json_decode($encoded_data, true);
	var_dump($decoded_data);
  • Вопрос задан
  • 122 просмотра
Решения вопроса 1
@amadi
При выполнении запроса на сервере curl_exec завершается с ошибкой. Что бы узнать детали ошибки, вам нужно выполнить curl_error($curl);
Выполнять нужно после $response = curl_exec($curl), но до curl_close($curl).
Результат выполнения curl_error будет содержать строку с описанием ошибки.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы