2016-02-12 2 views
2

Я использую код ниже, чтобы запросить api, однако я не вижу никакого вывода. Заголовок возвращается, но я также получаю сообщение об ошибке - «Произошла ошибка:» ни с чем другим - не очень полезно сказать меньше всего. Кто-нибудь знает, что я здесь делаю неправильно? (NB я должен удалить пользовательские данные по понятным причинам)CURL PHP - отсутствует вывод и неизвестная ошибка

//Required Call Information; 
$username = "xxxxxxxxxxxxx"; 
$password = "xxxxxxxxxxxxxxxxxxxxxxxxxx"; 
$remote_url = 'https://xxxxxxxxxxxxx.com/xx.json'; 


// init the resource 
$ch = curl_init(); 

//Header Information; 
$headr = array(); 
$headr[] = "Authorization: Basic " . base64_encode("$username:$password"); 
$headr[] = "X-Page:" . $pages; 

// set curl options 
curl_setopt($ch, CURLOPT_URL,$remote_url); 
curl_setopt($ch, CURLOPT_HTTPHEADER,$headr); 
curl_setopt($ch, CURLOPT_HEADER, true); 

// execute 
$output = curl_exec($ch); 

// echo 
echo $output; 

// echo 
print $output; 

// free 
curl_close($ch); 

// check status of server being called vis crul 
var_dump(curl_getinfo($ch)); 

//if error 
if (!curl_exec($ch)) { 
    // if curl_exec() returned false and thus failed 
    echo 'An error has occurred: ' . curl_error($ch); 
} 
else { 
    echo 'everything was successful'; 
} 
+0

Является ошибкой, что вы получаете фатальную ошибку или исключение PHP? –

+0

Чтобы вернуть результат, вам нужно установить 'CURLOPT_RETURNTRANSFER' для' curl_exec() '. –

+0

Также, когда вы выполняете 'if (! Curl_exec (...))', вы делаете ** другой ** вызов URL. Лучше использовать 'if ($ output === FALSE)'. –

ответ

2

Добавление локон неавтоматического RETURN_TRANSFER будет возвращать данные а не логическое, когда вызывается $output = curl_exec($ch);.

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
+0

Спасибо за это, fyi, оказалось, мне также нужно добавить curl_setopt ($ ch, CURLOPT_FOLLOWLOCATION, true); чтобы позволить CURL следовать переадресации и получать информацию. – user1419810

+0

Я все еще получаю «Произошла ошибка», хотя я добавил 'curl_setopt ($ ch, CURLOPT_FOLLOWLOCATION, true); ' – faisal1208

+0

faisal1208 - возможно, попробуйте установить' curl_setopt ($ ch, CURLOPT_FAILONERROR, true); 'который может помочь с любыми ошибками. Кроме того, проверьте код ответа HTTP, поскольку вы можете получить 404 или другую ошибку. –

0

Добавить в следующем завитка неавтоматического и посмотреть, что вы получите обратно:

curl_setopt($ch, CURLOPT_VERBOSE, true); 
+0

Hey J_D, спасибо за ввод, я только что пробовал это и, к сожалению, это ничего не меняет, я все равно получаю сообщение об ошибке без сообщения об ошибке. – user1419810

Смежные вопросы