cURL не возвращает файл JSON - PullRequest
       3

cURL не возвращает файл JSON

1 голос
/ 21 сентября 2011

У меня есть скрипт PHP, использующий cURL, который я хочу использовать для получения файла json с удаленного сервера.Чтобы попасть в систему JSON file / REST, вам необходимо использовать аутентификацию.По сути, я могу получить его для входа и хранения файлов cookie.Но когда я пытаюсь захватить страницу json и отобразить ее, он возвращает «Сессия не найдена».Вот мой код:

function login($url,$data) {
    $fp = fopen("cookie.txt", "w");
    fclose($fp);
    $login = curl_init();
    curl_setopt($login, CURLOPT_COOKIEJAR, "cookie.txt");
    curl_setopt($login, CURLOPT_TIMEOUT, 10000);
    curl_setopt($login, CURLOPT_RETURNTRANSFER, TRUE);
    curl_setopt($login, CURLOPT_URL, $url);
    curl_setopt($login, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
    curl_setopt($login, CURLOPT_FOLLOWLOCATION, TRUE);
    curl_setopt($login, CURLOPT_POST, TRUE);
    curl_setopt($login, CURLOPT_POSTFIELDS, $data);
   // ob_start();
    return curl_exec ($login);
   // ob_end_clean();
    curl_close ($login);
    //unset($login);
}

function grab_page($site){
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
    curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
    curl_setopt($ch, CURLOPT_TIMEOUT, 40);
    curl_setopt($ch, CURLOPT_COOKIEJAR, "cookie.txt");
    curl_setopt($ch, CURLOPT_URL, $site);
    //ob_start();
    echo curl_exec ($ch);
    //ob_end_clean();
    curl_close ($ch);
}

// Login and retrieve the my meteor page

login('https://www.mymeteor.ie','username=username-removed9&userpass=pass-removed');
echo grab_page('https://www.mymeteor.ie/cfusion/meteor/Meteor_REST/service/prepayBalance');

Может кто-нибудь помочь мне с этим?

1 Ответ

6 голосов
/ 21 сентября 2011

CURLOPT_COOKIEJAR - это место, где файл cookie помещается после запроса - сохраняется там для дальнейшего использования.

Когда приходит время для отправки куки вместе с запросом, используйте CURLOPT_COOKIEFILE, чтобы указать, какой куки отправлять.

Ваша функция grab_page() должна будет использовать эту последнюю опцию, а не (или также, если вам необходимо сохранить какие-либо куки в ответе на более поздний срок) CURLOPT_COOKIEJAR.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...