2014-03-19 99 views
-1

我試圖讓使用Zend2客戶端從遠程服務器的cookies的內容,我的代碼:Zend2 - 從遠程服務器cookie,捲曲

$client = new \Zend\Http\Client; 
$client->setHeaders($options); 
$adapter = new \Zend\Http\Client\Adapter\Curl(); 
$client->setAdapter($adapter); 
$client->setUri($url); 
$result = $client->getResponse(); 
$headers = $result->getHeaders(); 
$cookie = $headers->get('Cookie'); 
var_dump($cookie); 

其中$網址是例如http://example.com和$選項的樣子:

array('useragent' => 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)'); 

不過的var_dump($餅乾)時,我敢肯定有一個cookie(與螢火選中)返回布爾(假)。爲什麼這樣?我究竟做錯了什麼?

回答

0

首先,它的Set-Cookie當服務器通過響應頭返回你的cookie。目前,您正在使用Cookie,當您將cookie發送到服務器時,該請求頭可用。

$cookie = $headers->get('Set-Cookie'); 

另一件事,你確定example.com返回你cookie?或者,您可以嘗試使用返回cookie的其他網站,如www.youtube.com

+0

嗯,仍然沒有 - boolean(false),即使我已將url更改爲http://youtube.com。那麼,正如我所說的example.com只是一個例子。 – b4rt3kk

+0

我錯過了零件'例如'。請嘗試'$ result-> getHeaders()''var_dump'並檢查它有什麼。 –

+0

我已經傳遞給zend客戶端選項'curloptions'=> array( CURLOPT_RETURNTRANSFER => 1, CURLOPT_HEADER => 1 ),並且我得到:string(1204)「HTTP/1.1 200 OK Server:nginx Date:Wed ,2014年3月19日11:05:22 GMT內容類型:text/html; charset = utf8連接:關閉Vary:Accept-Encoding過期時間:Wed,19 Mar 2014 11:05:22 GMT Cache-Control:max-age = 0內容編碼:gzipUÍnă6>ŰO1ĺ%ľčüô/ + SC&ŮmIcl퍹Dľ$ EEZE%@ BCCC-N {˛,GM°H +ÉořÍĚGĘýćäňxňëř〜\ĂřúÍůŮ1Ľ7űÇLNĂ3ÜĽôô$ 6;¤'...「)等。如何解碼它? – b4rt3kk