带有GET/JSON问题的PHP CURL登录表单

带有GET/JSON问题的PHP CURL登录表单,php,json,curl,http-headers,Php,Json,Curl,Http Headers,我正在尝试使用php和curl登录一个网站。我可以登录并设置cookies,但是我需要向链接发出GET请求,标题应该如下所示。 取自HTTPLIVEHEADERS(FF) 标题: http://www.home.com/iframe/fut/p/ut/shards?_=1380785844876 GET /iframe/fut/p/ut/shards?_=1380785844876 HTTP/1.1 Host: www.home.com User-Agent: Mozilla/5.0 (Win

我正在尝试使用php和curl登录一个网站。我可以登录并设置cookies,但是我需要向链接发出GET请求,标题应该如下所示。 取自HTTPLIVEHEADERS(FF)

标题:

http://www.home.com/iframe/fut/p/ut/shards?_=1380785844876

GET /iframe/fut/p/ut/shards?_=1380785844876 HTTP/1.1
Host: www.home.com
User-Agent: Mozilla/5.0 (Windows NT 6.3; rv:24.0) Gecko/20100101 Firefox/24.0
Accept: application/json, text/javascript;
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/json
Session-Data-Nucleus-Id: 211222911
X-UT-Embed-Error: true
X-UT-Route: https://host2.com
X-Requested-With: XMLHttpRequest
Referer: http://www.home.com/iframe/fut/
Cookie: futweb=vk9b5ersdt0sbksooc7p8cj9k7; WEB-SESSION=vev11q6co9nlko4raeisfiqtu5;     hl=us; XSRF-TOKEN=5372d286aa1353e79c68b3d177192e5af7f96fc4; device_view=not_mobile; s_sivo=US%3AEASFW%3AFUT; s_cc=true; s_ria=flash%20not%20detected%7Csilverlight%20not%20detected; s_pv=NA%3AUS%3ASPORTS%3AEAC%3AONLINEGAME%3AFIFA%3AEASFW%3AFUT%3ALANDINGPAGE; s_nr1=1380785843058-NEW; s_sq=%5B%5BB%5D%5D; utag_main=_st:1380787644943$ses_id:1380786810666%3Bexp-session; s_ppv=100
Connection: keep-alive

我也做过类似的工作

        $ckfile = tempnam(APPPATH. "/temp", "CURLCOOKIE");
        remote_login($ckfile);
        uploadData($someDataTobePosted,$ckfile);
然后这里是登录的函数

    private function remote_login($ckfile) {
    $username = USER;
    $password = PWD;
    $url = "https://api.safecast.org/en-US/users/sign_in";
    $postdata = "user[email]=" . $username . "&user[password]=" . $password;
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
    curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6");
    curl_setopt($ch, CURLOPT_TIMEOUT, 60);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_COOKIEFILE, $ckfile);
    curl_setopt($ch, CURLOPT_COOKIEJAR, $ckfile);
    curl_setopt($ch, CURLOPT_REFERER, $url);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $postdata);
    curl_setopt($ch, CURLOPT_POST, 1);
    $result = curl_exec($ch);
    $this->log_cron_response($result);
    curl_close($ch);
}
然后是发布或获取数据的另一个乐趣

    private function uploadData($data,$ckfile){
    $ch = curl_init("https://api.safecast.org/measurements.json");
    $postdata = 
            "measurement[captured_at]=" . date("Y/m/d H:i:s",$data['radiation_time']/1000) 
            ."&measurement[device_id]=" . SAFE_CAST_DEVICE_ID
            ."&measurement[unit]=" . SAFE_CAST_UNIT
            ."&measurement[user_id]=" . SAFE_CAST_USER_ID
            ."&measurement[value]=" . $data['radiation_value']
            ."&measurement[latitude]=" . $data['lat']
            ."&measurement[longitude]=" . $data['long'];
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
    curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6");
    curl_setopt($ch, CURLOPT_TIMEOUT, 60);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_COOKIEFILE, $ckfile);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $postdata);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_COOKIEJAR, $ckfile);
    curl_setopt($ch, CURLOPT_REFERER, "https://api.safecast.org/measurements.json");
    $output = curl_exec($ch);
    $this->log_cron_response($output);
}
你可以用它 $ckfile=tempnam(APPPATH.“/temp”,“CURLCOOKIE”); 远程登录($ckfile);
$this->uploadData($value,$ckfile)

这里没有php代码…对不起,我实际上是在寻找我在问题中发布的构建标题的php代码。有什么线索吗?谢谢你的回复!您建议在我的浏览器执行GET请求时发出POST请求。你能帮我写一些php代码吗?这些代码与我上面发布的标题代码相同?