2016-07-25 9 views
0

Zendリクエストでカスタムヘッダーを設定しようとしました。私は以下のエラーを取得しています:Zendヘッダーの問題

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

は、私はまた、文字列形式でヘッダを与えてみました:

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

は、以下の私のコードサンプルです。しかし、私は同じエラーに直面しています。ヘッダを設定する際に、ここで何が問題になっているのか誰でも知ることができますか?

答えて

1

エラーがすべて表示され、setHeadersは、タイプ\Zend\HTTP\Headersのオブジェクトが必要です。

最初のオブジェクトを作成しよう:

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

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

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

または

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

チェックインスタンスを作成することができます。ありがとう –

0

$request->setHeaders()は、パラメータとしてZend\Http\Headers()のインスタンスを望んでいます。だから、それが働いたthis

+0

あなたは完全なヘッダー文字列を与える必要があります。 '$ headerString = <<< EOB ホスト:www.example.com のContent-Type:text/htmlの のContent-Length:1337 認証:MYAUTH $ AUTHID EOB;' – sozkul

+0

うん..ソリューションのおかげ。完全なヘッダ文字列を与えると動作します。 –