【问题标题】:cURL not returning JSON filecURL 不返回 JSON 文件
【发布时间】:2011-09-20 20:24:03
【问题描述】:

我有一个使用 cURL 的 PHP 脚本,我想用它从远程服务器检索 json 文件。要访问 json 文件/REST 系统,您需要使用身份验证。基本上,我可以让它登录和存储cookies。但是当我尝试抓取 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');

谁能帮我解决这个问题?

【问题讨论】:

  • 当您尝试向服务器发送 cookie 时,应使用“CURLOPT_COOKIEFILE”而不是“CURLOPT_COOKIEJAR”。

标签: php json curl


【解决方案1】:

CURLOPT_COOKIEJAR 是在请求​​后放置 cookie 的位置 — 存储在那里供以后使用。

当需要将 cookie 与请求一起发送时,请使用 CURLOPT_COOKIEFILE 指定要发送的 cookie。

您的 grab_page() 函数将需要使用后一个选项,而不是(或者,如果您需要在响应中存储任何 cookie 以供以后使用)CURLOPT_COOKIEJAR

【讨论】:

  • 现在我得到的会话值为空。有任何想法吗?我的 cookie.txt 中充满了必要的 cookie。
  • 我猜 Session 的值为空。您的 cookie 是否包含该值,或者它是您需要发送到其他地方的东西,还是与您发送的内容完全无关?...
  • 据我所知,这与我发送的内容完全无关。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-25
  • 1970-01-01
  • 1970-01-01
  • 2021-10-21
相关资源
最近更新 更多