2016-07-25 152 views
0

我試着在Zend請求中設置自定義標題。我收到以下錯誤:Zend標題問題

Argument 1 passed to Zend\\Http\\AbstractMessage::setHeaders() must be an instance of Zend\\Http\\Headers, array given 

下面是我的代碼示例:

<?php 
$request = new Request(); 
$request->setContent($parameters); 
$request->setMethod(Request::METHOD_POST); 
$request->setHeaders(array("Authorization: MyAuth $authId")); 
$request->setUri($url); 

我也試過在字符串格式給出的標頭。但我仍然面臨同樣的錯誤。任何人都可以找出設置標題時出現的問題嗎?

回答

1

錯誤說明了這一切,setHeaders正在等待\Zend\HTTP\Headers類型的對象。

首先嚐試創建該對象:

$headers = new \Zend\Http\Headers(); 
$headers->addHeaderLine('[YOUR HEADER LINE]'); 

$request->setHeaders($headers); 
+0

它的工作。謝謝 –

0

$request->setHeaders()想的Zend\Http\Headers()實例作爲參數。所以,你可以創建一個實例

$headers = new Zend\Http\Headers(); 
$headers->addHeaders("Authorization","MyAuth ".$authId); 

$headers = Zend\Http\Headers::fromString($headerString); 

檢查this

+0

你需要給一個完整的標題字符串,如; '$ headerString = <<< EOB 主持人:www.example.com 的Content-Type:text/html的 的Content-Length:1337 授權:MyAuth $ AUTHID EOB;' – sozkul

+0

是啊..謝謝你的解決方案。它適用於我們提供完整的標題字符串。 –