2010-03-25 4 views
0
<?php 
function updateTwitter($status) 
{ 
    // Twitter login information 
    $username = 'xxxxx'; 
    $password = 'xxxxxx'; 
    // The url of the update function 
    $url = 'http://twitter.com/statuses/update.xml'; 
    // Arguments we are posting to Twitter 
    $postargs = 'status='.urlencode($status); 
    // Will store the response we get from Twitter 
    $responseInfo=array(); 
    // Initialize CURL 
    $ch = curl_init($url); 
    // Tell CURL we are doing a POST 
    curl_setopt ($ch, CURLOPT_POST, true); 
    // Give CURL the arguments in the POST 
    curl_setopt ($ch, CURLOPT_POSTFIELDS, $postargs); 
    // Set the username and password in the CURL call 
    curl_setopt($ch, CURLOPT_USERPWD, $username.':'.$password); 
    // Set some cur flags (not too important) 
    curl_setopt($ch, CURLOPT_VERBOSE, 1); 
    curl_setopt($ch, CURLOPT_NOBODY, 0); 
    curl_setopt($ch, CURLOPT_HEADER, 0); 
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION,1); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    // execute the CURL call 
    $response = curl_exec($ch); 
    // Get information about the response 
    $responseInfo=curl_getinfo($ch); 
    // Close the CURL connection curl_close($ch); 
    // Make sure we received a response from Twitter 
    if(intval($responseInfo['http_code'])==200){ 
     // Display the response from Twitter 
     echo $response; 
    }else{ 
     // Something went wrong 
     echo "Error: " . $responseInfo['http_code']; 
    } 
} 

updateTwitter("Just finished a sweet tutorial on http://brandontreb.com"); 

?> 

я получаю следующие выходные данныеSample твиттер приложение

Error: 0 

Пожалуйста, помогите.

ответ

1

libcurl documentation говорит, что http_code установлен на 0 при отказе (код ответа сервера отсутствует). Вы должны проверить response перед вызовом curl_getinfo и позвонить curl_error, если это ЛОЖЬ. Кроме того, нет смысла хранить пустой массив в responseInfo. Вместо него вы можете установить значение null.

+0

ответ FALSE, и я получаю следующее сообщение об ошибке; Ошибка Curl: не удалось подключиться к хосту – Bruce

+0

Я добавил еще одну строку в код curl_setopt ($ ch, CURLOPT_PROXY, "localhost: 80"); Теперь я получаю сообщение об ошибке: 404 – Bruce

+0

Я удалил это заявление и теперь использовал услугу веб-хостинга для запуска моего кода, и я получаю следующую ошибку. Ошибка Curl: не удалось разрешить хост «api.twitter.com» Ошибка: 0 – Bruce

0

Может быть ошибкой, или он забыл исключить его из сообщения, но curl_close ($ ch) никогда не называется. Может быть, это то, что удерживает ответ? Я проведу больше, когда вернусь домой.

+0

Нет, отсутствующий 'curl_close' просто вызовет утечку ресурсов. когда задано 'CURLOPT_RETURNTRANSFER', ответ должен быть возвращен из' curl_exec'. –

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