如何从php中的curl响应获取cookie值

时间:2018-08-16 18:02:22

标签: php api curl cookies

我正在通过curl调用此API:

$url = '/api/auth/login';
$curl = curl_init();

curl_setopt_array($curl, array(
    CURLOPT_URL => $url,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 30,
    CURLOPT_CUSTOMREQUEST => "POST",
    CURLOPT_POSTFIELDS => "{\"fbUserID\": \"$fbID\", \"fbAccessToken\": \"$Token\"}",
    CURLOPT_HTTPHEADER => array(
        "accept: application/json",
        "cache-control: no-cache",
        "content-type: application/json"
    ),
));

$response = curl_exec($curl);
$jsonresult = json_decode($response);
$err = curl_error($curl);

我的问题是如何在响应标头中获取cookie值,我正在测试POSTMAN API中的调用,因此正在获取cookie值。

可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

添加此代码段

$cookie=dirname(__FILE__)."/cookie.txt"; 

curl_setopt ($curl, CURLOPT_COOKIEJAR, $cookie);

curl_setopt ($curl, CURLOPT_COOKIEFILE, $cookie);

最终看起来像这样

$cookie=dirname(__FILE__)."/cookie.txt"; 
$url = '/api/auth/login'; 
$curl = curl_init(); 
curl_setopt_array($curl, 
array( CURLOPT_URL => $url
, CURLOPT_COOKIEJAR => $cookie
, CURLOPT_COOKIEFILE => $cookie
, CURLOPT_RETURNTRANSFER => true
, CURLOPT_ENCODING => ""
, CURLOPT_MAXREDIRS => 10
, CURLOPT_TIMEOUT => 30
, CURLOPT_CUSTOMREQUEST => "POST"
, CURLOPT_POSTFIELDS => "{\"fbUserID\": \"$fbID\", \"fbAccessToken\": \"$Token\"}"
,CURLOPT_HTTPHEADER => array(
"accept: application/json",
"cache-control: no-cache",
"content-type: application/json"
),
));
$response = curl_exec($curl);
$jsonresult = json_decode($response);
$err = curl_error($curl);