【PHP】HTTP_Requestのまとめ
PearのHTTP_Requestのまとめ
HTTP_Requestについて
HTTP_Requestは、HTTPアクセスを簡単に行えるPearのパッケージです。
GET/POST/HEAD/TRACE/PUT/DELETE、Basic認証、プロキシ、プロキシ認証、SSL、 ファイルアップロードなどが可能です。
HTTP_Requestの詳細はこちらおよびこちらを参照して下さい。
HTTP_Requestの導入
HTTP_RequestはPearのパッケージなのでPearをインストールしなければなりません。
私はさくらインターネットを使っており、インストールした時の手順をさくらインターネットでPHPのPEARをインストールするでまとめていますので、そちらを参考にしてください。
また、【PHP】PEARをインストールせずにHTTP_Requestを使用する方法にあるようにPearをインストールすることなく導入することも可能です。
HTTP_Requestの使い方
HTTP_Requestの使い方をサンプルコードで説明します。
コードの説明文を見るとだいたいの使い方がイメージできると思います。
<?php
//PEARのHTTP_Requestをインクルードする
require_once "HTTP/Request.php";
//HTTP_RequestするURL
$http_request_url = "ここにURL";
//HTTP_Requestのオプション指定
$http_request_option = array(
"timeout" => "10", // タイムアウトの秒数指定
"allowRedirects" => true, // リダイレクトの許可設定(true/false)
"maxRedirects" => 3, // リダイレクトの最大回数
);
//HTTP_Requestの初期化
$http = new HTTP_Request($http_request_url, $http_request_option);
//HTTPヘッダーの設定
$http->addHeader("User-Agent", "ここにユーザーエージェント"); //ユーザーエージェントの設定
$http->addHeader("Referer", "ここに参照元"); //参照元の設定
$http->addHeader("Authorization", "ここにアクセス認証用の文字列"); //HTTPアクセス認証の設定(不必要であれば削除)
//メソッドの設定
$http->setMethod(ここにメソッドの定数);
//POST送信の設定(不必要であれば削除)
//POST送信するデータ
$post_data = array('ここに名前' => 'ここにPOST送信するデータ');
//メソッドがPOST送信か確認する
if ($http->_method == HTTP_REQUEST_METHOD_POST) {
foreach ($post_data as $key => $value){
$http->addPostData($key, $value);
}
}
//ベーシック認証の設定(不必要であれば削除)
$http->setBasicAuth("名前", "パスワード");
//Cookieの設定(不必要であれば削除)
$http->addCookie("Cookieの名前", "値");
//プロキシの設定(不必要であれば削除)
$http->setProxy("proxy.example.com", 8080);
//プロキシに対する認証(不必要であれば削除)
$http->setProxy("proxy.example.com", 8080, "名前", "パスワード");
//HTTPリクエストの実行
$response = $http->sendRequest();
//HTTPリクエストが成功したか確認
if (PEAR::isError($response)){
//エラー文出力
echo $response->getMessage();
}else{
//ResponseCode(200等)を取得
$response_code = $http->getResponseCode();
//ResponseHeader(レスポンスヘッダ)を取得
$response_header = $http->getResponseHeader();
//コンテンツを取得
$response_body = $http->getResponseBody();
//クッキーを取得
$resposen_cookie = $http->getResponseCookies();
}
//リクエストが成功した場合
if($response_code === 200){
//コンテンツの出力
echo $response_body;
}
?>
HTTP_Requestのオプションの設定
HTTP_Requestのオプションは上のサンプルプログラムのように連想配列で指定します。
HTTPヘッダーの設定
HTTPヘッダーの設定は以下のように行います。
$http->addHeader("ここに名前", "ここに値");
例えば、ユーザーエージェントと参照元を設定したい場合は次のようにします。
//HTTPヘッダーの設定
$http->addHeader("User-Agent", "ここにユーザーエージェント");
$http->addHeader("Referer", "ここに参照元");
HTTPアクセス認証の設定
HTTPアクセス認証を行う場合は以下のように「Authorization」を設定します。
//HTTPヘッダーの設定
$http->addHeader("Authorization", "ここにアクセス認証用の文字列");
HTTP_Requestのメソッド一覧
HTTP_RequestではsetMethod関数でメソッドをセットできます。
$http->setMethod(ここにメソッドの定数);
例えば、POSTメソッドをセットする場合はこのようにします。
//POSTメソッドをセット
$http->setMethod(HTTP_REQUEST_METHOD_POST);
//POST送信を行うデータ
$http->addPostData(name, value);
以下に、HTTP_Requestで使用できるメソッドとその定数をまとめておきます。
| メソッド | 定数 |
|---|---|
| GET | HTTP_REQUEST_METHOD_GET |
| HEAD | HTTP_REQUEST_METHOD_HEAD |
| POST | HTTP_REQUEST_METHOD_POST |
| PUT | HTTP_REQUEST_METHOD_PUT |
| DELETE | HTTP_REQUEST_METHOD_DELETE |
| OPTIONS | HTTP_REQUEST_METHOD_OPTIONS |
| TRACE | HTTP_REQUEST_METHOD_TRACE |
メモ
HTTP_Requestでポスト送信する際、addPostData関数を使いますが、この関数はメンバ変数に連想配列としてPOSTデータを保存します。
続けてリクエストする場合、POSTデータが残っているので注意が必要です。
POSTデータを初期化するには、clearPostData関数を使用します。
あわせて読んでほしい!




1:MatthewroG:2020/06/07 11:46:41
<b></b>