<commit_before><!-- EN-Revision: 12116 -->
<sect1 id="zend.http.client">
    <title>Zend_Http_Client - 導入</title>

    <sect2 id="zend.http.client.introduction">
        <title>導入</title>
        <para>
            Zend_Http_Client は、Hyper-Text Transfer Protocol (HTTP)
            リクエストを簡単に扱うためのインターフェイスを提供します。
            Zend_Http_Client は、HTTP クライアントとしての最低限の機能をサポートしているだけでなく、
            HTTP 認証やファイルのアップロードといった高度な機能もサポートしています。
            リクエストに成功すると (失敗しても) Zend_Http_Response
            オブジェクトを返します。これを使用すると、レスポンスのヘッダや本文にアクセスできます
            (<xref linkend="zend.http.response" /> を参照ください)。
        </para>
        <para>
            クラスのコンストラクタには、オプションの引数として URL を指定することができます
            (文字列か Zend_Uri_Http オブジェクトのどちらでも可能です)。
            また、オプションで設定パラメータの配列を指定することもできます。
            どちらも省略することが可能で、その場合は後から
            setUri() メソッドや setConfig() メソッドで指定します。
            <example id="zend.http.client.introduction.example-1">
                <title>Zend_Http_Client のインスタンスの作成</title>
                <programlisting role="php"><![CDATA[
$client = new Zend_Http_Client('http://example.org', array(
    'maxredirects' => 0,
    'timeout'      => 30));

// これは、上とまったく同じことです
$client = new Zend_Http_Client();
$client->setUri('http://example.org');
$client->setConfig(array(
    'maxredirects' => 0,
    'timeout'      => 30));
]]>
                </programlisting>
            </example>

            <note>
                <para>Zend_Http_Client は Zend_Uri_Http を用いて URL を検証します。
                つまり、URL 中にあるパイプ記号 ('|') やキャレット記号 ('^')
                などの特殊文字はデフォルトでは許可されないということです。

                これを変更するには、Zend_Uri のオプション 'allow_unwise' を
                'true' に設定します。詳細は <xref linkend="zend.uri.validation.allowunwise" />
                を参照ください。</para>
            </note>
        </para>
    </sect2>
    <sect2 id="zend.http.client.configuration">
        <title>設定パラメータ</title>
        <para>
            コンストラクタおよび setConfig() メソッドでは
            設定パラメータの連想配列を受け取ります。
            これらのパラメータは、設定してもしなくてもかまいません。
            すべてのパラメータにはデフォルト値があります。
            <table id="zend.http.client.configuration.table">
                <title>Zend_Http_Client の設定パラメータ</title>
                <tgroup cols="4">
                    <thead>
                        <row>
                            <entry>パラメータ</entry>
                            <entry>説明</entry>
                            <entry>期待する値</entry>
                            <entry>デフォルト値</entry>
                        </row>
                    </thead>
                    <tbody>
                        <row>
                            <entry>maxredirects</entry>
                            <entry>リダイレクトをたどる最大数 (0 = たどらない)</entry>
                            <entry>integer</entry>
                            <entry>5</entry>
                        </row>
                        <row>
                            <entry>strict</entry>
                            <entry>ヘッダ名の検証を行うかどうか。false に設定すると、検証関数をスキップします。通常はこれを変更してはいけません。</entry>
                            <entry>boolean</entry>
                            <entry>true</entry>
                        </row>
                        <row>
                            <entry>strictredirects</entry>
                            <entry>リダイレクトの際に RFC に厳密に従うかどうか (<xref linkend="zend.http.client.redirections" /> を参照ください)</entry>
                            <entry>boolean</entry>
                            <entry>false</entry>
                        </row>
                        <row>
                            <entry>useragent</entry>
                            <entry>ユーザエージェントを表す文字列 (リクエストヘッダに付加されます)</entry>
                            <entry>string</entry>
                            <entry>'Zend_Http_Client'</entry>
                        </row>
                        <row>
                            <entry>timeout</entry>
                            <entry>接続タイムアウト秒数</entry>
                            <entry>integer</entry>
                            <entry>10</entry>
                        </row>
                        <row>
                            <entry>httpversion</entry>
                            <entry>HTTP プロトコルのバージョン (通常は '1.1' あるいは '1.0')</entry>
                            <entry>string</entry>
                            <entry>'1.1'</entry>
                        </row>
                        <row>
                            <entry>adapter</entry>
                            <entry>使用する接続アダプタクラス (<xref linkend="zend.http.client.adapters" /> を参照ください)</entry>
                            <entry>mixed</entry>
                            <entry>'Zend_Http_Client_Adapter_Socket'</entry>
                        </row>
                        <row>
                            <entry>keepalive</entry>
                            <entry>
                             サーバとの keep-alive 接続を有効にするかどうか。
                             同一サーバに連続してリクエストが発生する場合などに便利で、性能を向上させるでしょう。
                            </entry>
                            <entry>boolean</entry>
                            <entry>false</entry>
                        </row>
                        <row>
                            <entry>storeresponse</entry>
                            <entry>直近のレスポンスを保存して後から
                            getLastResponse() で取得できるようにするかどうか。false の場合
                            getLastResponse() は null を返します。</entry>
                            <entry>boolean</entry>
                            <entry>true</entry>
                        </row>
                    </tbody>
                </tgroup>
            </table>
        </para>
    </sect2>
    <sect2 id="zend.http.client.basic-requests">
        <title>基本的な HTTP リクエストの処理</title>
        <para>
            シンプルな HTTP リクエストを実行するのは非常に簡単で、単に
            request() メソッドを実行するだけです。たったの三行ですんでしまいます。
            <example id="zend.http.client.basic-requests.example-1">
                <title>シンプルな GET リクエストの処理</title>
                <programlisting role="php"><![CDATA[
$client = new Zend_Http_Client('http://example.org');
$response = $client->request();
]]>
                </programlisting>
            </example>
            request() メソッドには、オプションでパラメータを指定することができます。
            このパラメータはリクエストメソッドで、HTTP プロトコルで定義されている
            GET、POST、PUT、HEAD、DELETE、TRACE、OPTIONS そして CONNECT
            のいずれかを指定可能です。
            <footnote>
              <para>
                RFC 2616 - <ulink url="http://www.w3.org/Protocols/rfc2616/rfc2616.html" /> を参照ください。
              </para>
            </footnote>.
            利便性を高めるため、これらはすべてクラス定数として定義されています。たとえば
            Zend_Http_Request::GET、Zend_Http_Request::POST などのようになっています。
        </para>
        <para>
            メソッドを指定しない場合は、直近の setMethod() コールで指定されたメソッドを使用します。
            setMethod() もコールされていない場合は、デフォルトのリクエストメソッドとして
            GET を使用します (上の例を参照ください)。<commit_msg>Relate to ZF-5365<commit_after><!-- EN-Revision: 13484 -->
<sect1 id="zend.http.client">
    <title>Zend_Http_Client - 導入</title>

    <sect2 id="zend.http.client.introduction">
        <title>導入</title>
        <para>
            Zend_Http_Client は、Hyper-Text Transfer Protocol (HTTP)
            リクエストを簡単に扱うためのインターフェイスを提供します。
            Zend_Http_Client は、HTTP クライアントとしての最低限の機能をサポートしているだけでなく、
            HTTP 認証やファイルのアップロードといった高度な機能もサポートしています。
            リクエストに成功すると (失敗しても) Zend_Http_Response
            オブジェクトを返します。これを使用すると、レスポンスのヘッダや本文にアクセスできます
            (<xref linkend="zend.http.response" /> を参照ください)。
        </para>
        <para>
            クラスのコンストラクタには、オプションの引数として URL を指定することができます
            (文字列か Zend_Uri_Http オブジェクトのどちらでも可能です)。
            また、オプションで設定パラメータの配列を指定することもできます。
            どちらも省略することが可能で、その場合は後から
            setUri() メソッドや setConfig() メソッドで指定します。
            <example id="zend.http.client.introduction.example-1">
                <title>Zend_Http_Client のインスタンスの作成</title>
                <programlisting role="php"><![CDATA[
$client = new Zend_Http_Client('http://example.org', array(
    'maxredirects' => 0,
    'timeout'      => 30));

// これは、上とまったく同じことです
$client = new Zend_Http_Client();
$client->setUri('http://example.org');
$client->setConfig(array(
    'maxredirects' => 0,
    'timeout'      => 30));
]]>
                </programlisting>
            </example>

            <note>
                <para>Zend_Http_Client は Zend_Uri_Http を用いて URL を検証します。
                つまり、URL 中にあるパイプ記号 ('|') やキャレット記号 ('^')
                などの特殊文字はデフォルトでは許可されないということです。

                これを変更するには、Zend_Uri のオプション 'allow_unwise' を
                'true' に設定します。詳細は <xref linkend="zend.uri.validation.allowunwise" />
                を参照ください。</para>
            </note>
        </para>
    </sect2>
    <sect2 id="zend.http.client.configuration">
        <title>設定パラメータ</title>
        <para>
            コンストラクタおよび setConfig() メソッドでは
            設定パラメータの連想配列を受け取ります。
            これらのパラメータは、設定してもしなくてもかまいません。
            すべてのパラメータにはデフォルト値があります。
            <table id="zend.http.client.configuration.table">
                <title>Zend_Http_Client の設定パラメータ</title>
                <tgroup cols="4">
                    <thead>
                        <row>
                            <entry>パラメータ</entry>
                            <entry>説明</entry>
                            <entry>期待する値</entry>
                            <entry>デフォルト値</entry>
                        </row>
                    </thead>
                    <tbody>
                        <row>
                            <entry>maxredirects</entry>
                            <entry>リダイレクトをたどる最大数 (0 = たどらない)</entry>
                            <entry>integer</entry>
                            <entry>5</entry>
                        </row>
                        <row>
                            <entry>strict</entry>
                            <entry>ヘッダ名の検証を行うかどうか。false に設定すると、検証関数をスキップします。通常はこれを変更してはいけません。</entry>
                            <entry>boolean</entry>
                            <entry>true</entry>
                        </row>
                        <row>
                            <entry>strictredirects</entry>
                            <entry>リダイレクトの際に RFC に厳密に従うかどうか (<xref linkend="zend.http.client.redirections" /> を参照ください)</entry>
                            <entry>boolean</entry>
                            <entry>false</entry>
                        </row>
                        <row>
                            <entry>useragent</entry>
                            <entry>ユーザエージェントを表す文字列 (リクエストヘッダに付加されます)</entry>
                            <entry>string</entry>
                            <entry>'Zend_Http_Client'</entry>
                        </row>
                        <row>
                            <entry>timeout</entry>
                            <entry>接続タイムアウト秒数</entry>
                            <entry>integer</entry>
                            <entry>10</entry>
                        </row>
                        <row>
                            <entry>httpversion</entry>
                            <entry>HTTP プロトコルのバージョン (通常は '1.1' あるいは '1.0')</entry>
                            <entry>string</entry>
                            <entry>'1.1'</entry>
                        </row>
                        <row>
                            <entry>adapter</entry>
                            <entry>使用する接続アダプタクラス (<xref linkend="zend.http.client.adapters" /> を参照ください)</entry>
                            <entry>mixed</entry>
                            <entry>'Zend_Http_Client_Adapter_Socket'</entry>
                        </row>
                        <row>
                            <entry>keepalive</entry>
                            <entry>
                             サーバとの keep-alive 接続を有効にするかどうか。
                             同一サーバに連続してリクエストが発生する場合などに便利で、性能を向上させるでしょう。
                            </entry>
                            <entry>boolean</entry>
                            <entry>false</entry>
                        </row>
                        <row>
                            <entry>storeresponse</entry>
                            <entry>直近のレスポンスを保存して後から
                            getLastResponse() で取得できるようにするかどうか。false の場合
                            getLastResponse() は null を返します。</entry>
                            <entry>boolean</entry>
                            <entry>true</entry>
                        </row>
                    </tbody>
                </tgroup>
            </table>
        </para>
    </sect2>
    <sect2 id="zend.http.client.basic-requests">
        <title>基本的な HTTP リクエストの処理</title>
        <para>
            シンプルな HTTP リクエストを実行するのは非常に簡単で、単に
            request() メソッドを実行するだけです。たったの三行ですんでしまいます。
            <example id="zend.http.client.basic-requests.example-1">
                <title>シンプルな GET リクエストの処理</title>
                <programlisting role="php"><![CDATA[
$client = new Zend_Http_Client('http://example.org');
$response = $client->request();
]]>
                </programlisting>
            </example>
            request() メソッドには、オプションでパラメータを指定することができます。
            このパラメータはリクエストメソッドで、HTTP プロトコルで定義されている
            GET、POST、PUT、HEAD、DELETE、TRACE、OPTIONS そして CONNECT
            のいずれかを指定可能です。
            <footnote>
              <para>
                RFC 2616 - <ulink url="http://www.w3.org/Protocols/rfc2616/rfc2616.html" /> を参照ください。
              </para>
            </footnote>.
            利便性を高めるため、これらはすべてクラス定数として定義されています。たとえば
            Zend_Http_Client::GET、Zend_Http_Client::POST などのようになっています。
        </para>
        <para>
            メソッドを指定しない場合は、直近の setMethod() コールで指定されたメソッドを使用します。
            setMethod() もコールされていない場合は、デフォルトのリクエストメソッドとして
            GET を使用します (上の例を参照ください)。
{'fraction_non_alphanumeric': 0.10528230500582073, 'fraction_numerical': 0.006548311990686845, 'mean_word_length': 1.191485969387755, 'pattern_counts': {'":': 0, '<': 325, '<?xml version=': 0, '>': 339, 'https://': 0, 'lorem ipsum': 0, 'www.': 2, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6740652', 'n_tokens_mistral': 5314, 'n_tokens_neox': 4955, 'n_words': 521}