[PHP-users 27099] Re: HTTP_ClientでBasic認証

KOYAMA Tetsuji koyama @ hoge.org
2005年 10月 5日 (水) 15:07:40 JST


小川ではなく小山です。:-)

On 10/5/05, shima tetuo <mlmlml @ lily.freemail.ne.jp> wrote:
> このようにHTTP_Requestでは、ヘッダーを追加しているので、HTTP_Clientが
> HTTP_RequestのaddHeaderを呼んでいる元データを追跡すると、コンストラクタ
> の第二引数の配列かと思いますので、Basic認証するような配列を渡しています。
>
> うちのルーターに繋いでみましたが、うまくいったようです。(200)
>
> 小川さん、こういう事だったでしょうか?

私が書いたのはそういうことではなくて、HTTP_Client コンストラクタの第一
引数 $defaultRequestParams は、HTTP_Client が内部的に HTTP_Request
オブジェクトを作る際に $params として渡されます。

HTTP_Request のコンストラクタでは、$params に渡された連想配列は
$this->_変数名 としてオブジェクトのプロパティとして設定され、
Basic認証に関係するプロパティが存在した場合は HTTP_Request
コンストラクタ内の、

>        // Basic authentication
 >       if (!empty($this->_user)) {
 >           $this->_requestHeaders['Authorization'] = 'Basic ' .
base64_encode($this->_user . ':' . $this->_pass);
>         }

の部分で、setBasicAuth メソッドと同様の処理が行われます。

なので、

> $basic = array(
> 'Authorization' => 'Basic ' . base64_encode('user_name' . ':' . 'password_string')
> );
>
> $client = new HTTP_Client(null, $basic);

のように、わわざ HTTP Header の形にして登録してあげる必要はありません。
(もちろん HTTP Header で登録してもかまいません。)

--
    小山哲志@ビート・クラフト
    koyama @ beatcraft.com
    koyama @ hoge.org


PHP-users メーリングリストの案内