[php][pear]HTTP_Request2のサンプル#3
この記事は、HTTP_Requestのマニュアルに載っている全サンプルコードをHTTP_Request2対応で書き換えてみる企画の3回目です。HTTP_Request2クラスの概要を知りたい方は、下記リンクの#1を参照ください。
全記事へのリンク:
- [php][pear]HTTP_Request2のサンプル#1
- [php][pear]HTTP_Request2のサンプル#2
- [php][pear]HTTP_Request2のサンプル#3
- [php][pear]HTTP_Request2のサンプル#4
- [php][pear]HTTP_Request2のサンプル#5
#6 PDF 文章をアップロードする
php:
-
<?php
-
/**
-
* 例 48-6 PDF 文章をアップロードする
-
*
-
* この例では、/home/johndoe/text.pdf というファイルが
-
* リモートにあるマシン upload.example.com に johndoe-text.pdf という名前で
-
* アップロードされます。 さらに、ジョンが何かをアップロードする事を許可されていることを
-
* 保証するために、Basic 認証が使用されています。
-
*
-
* @link http://pear.php.net/manual/ja/package.http.http-request.file-upload.php
-
*/
-
require_once 'HTTP/Request2.php';
-
-
try {
-
$req = new HTTP_Request2("http://upload.example.com/upload.php", HTTP_Request2::METHOD_POST);
-
$req->setAuth("johndoe", "foo", HTTP_Request2::AUTH_BASIC);
-
$req->addUpload("johndoe-txt.pdf", "/home/johndoe/text.pdf");
-
$response = $req->send();
-
echo $response->getBody();
-
} catch (HTTP_Request2_Exception $e) {
-
} catch (Exception $e) {
-
}
-
-
/*****************************
-
* HTTP_Request::addFile()はHTTP_Request2->addUpload()に変更されました。
-
*****************************/
-
-
/*
-
require_once "HTTP/Request.php";
-
-
$req =& new HTTP_Request("http://upload.example.com/upload.php");
-
$req->setBasicAuth("johndoe", "foo");
-
$req->setMethod(HTTP_REQUEST_METHOD_POST);
-
-
$result = $req->addFile("johndoe-txt.pdf", "/home/johndoe/text.pdf");
-
if (PEAR::isError($result)) {
-
echo $result->getMessage();
-
} else {
-
-
$response = $req->sendRequest();
-
-
if (PEAR::isError($response)) {
-
echo $response->getMessage();
-
} else {
-
echo $req->getResponseBody();
-
}
-
}
-
*/
-
?>
#7 カスタムリクエストヘッダの追加
php:
-
<?php
-
/**
-
* 例 48-7 カスタムリクエストヘッダの追加
-
*
-
* 以下の例では、HTTP ヘッダ X-PHP-Version が HTTP リクエストに追加されます。
-
* このヘッダの値は、 HTTP_Request インスタンスが動作している PHP インタプリタのバージョン文字列です。
-
*
-
* @link http://pear.php.net/manual/ja/package.http.http-request.headers.php
-
*/
-
require_once 'HTTP/Request2.php';
-
-
try {
-
$req = new HTTP_Request2("http://example.com/");
-
-
$response = $req->send();
-
echo $response->getBody();
-
-
} catch (HTTP_Request2_Exception $e) {
-
} catch (Exception $e) {
-
}
-
-
/*****************************
-
* HTTP_Request::addHeader()はHTTP_Request2->setHeader()に変更されました。
-
* 配列での一括指定や"header:value"形式の文字列でも受け付けるようになりました。
-
*****************************/
-
-
/*
-
require_once "HTTP/Request.php";
-
-
$req =& new HTTP_Request("http://example.com/");
-
$req->addHeader("X-PHP-Version", phpversion());
-
-
$response = $req->sendRequest();
-
-
if (PEAR::isError($response)) {
-
echo $response->getMessage();
-
} else {
-
echo $req->getResponseBody();
-
}
-
-
*/
-
?>
#8 匿名アクセスでプロキシサーバを利用する
php:
-
<?php
-
/**
-
* 例 48-8 匿名アクセスでプロキシサーバを利用する
-
*
-
* この例では、プロキシサーバがポート 8080 で待機しており、
-
* example.com への外向き接続の代理(プロキシ)を行っている
-
* proxy.example.com というホスト名のマシンを 利用しようとしている、と想定しています。
-
*
-
* setProxy() の二番目のパラメータはオプションで、 デフォルトは 8080 です。
-
*
-
* @link http://pear.php.net/manual/ja/package.http.http-request.proxy-auth.php
-
*/
-
require_once 'HTTP/Request2.php';
-
-
try {
-
$req = new HTTP_Request2("http://example.com/");
-
'proxy_host' => 'proxy.example.com',
-
'proxy_port' => '8080',
-
));
-
// $req->setConfig('proxy_host', 'proxy.example.com');
-
// $req->setConfig('proxy_port', '8080');
-
-
$response = $req->send();
-
echo $response->getBody();
-
-
} catch (HTTP_Request2_Exception $e) {
-
} catch (Exception $e) {
-
}
-
-
/*****************************
-
* HTTP_Request::setProxy()に対応するメソッドはありません。
-
* 代わりにHTTP_Request2::setConfig()メソッドで1つ1つ設定するか、配列でまとめて設定します。
-
*****************************/
-
-
/*
-
require_once "HTTP/Request.php";
-
-
$req =& new HTTP_Request("http://example.com/");
-
$req->setProxy("proxy.example.com", 8080);
-
*/
-
?>
#9 プロキシ認証の利用
php:
-
<?php
-
/**
-
* 例 48-9 プロキシ認証の利用
-
*
-
* これは、プロキシサーバでのユーザー認証のためのユーザー名/パスワードの
-
* タプルが提供されていることを除いて、上記と同じ例です:
-
* ユーザー名は johndoe で付随するパスワードは foo です。
-
*
-
* @link http://pear.php.net/manual/ja/package.http.http-request.proxy-auth.php
-
*/
-
require_once 'HTTP/Request2.php';
-
-
try {
-
$req = new HTTP_Request2("http://example.com/");
-
'proxy_host' => 'proxy.example.com',
-
'proxy_port' => '8080',
-
'proxy_user' => 'johndoe',
-
'proxy_password' => 'foo',
-
));
-
// $req->setConfig('proxy_host', 'proxy.example.com');
-
// $req->setConfig('proxy_port', '8080');
-
// $req->setConfig('proxy_user', 'johndoe');
-
// $req->setConfig('proxy_password', 'foo');
-
-
$response = $req->send();
-
echo $response->getBody();
-
-
} catch (HTTP_Request2_Exception $e) {
-
} catch (Exception $e) {
-
}
-
-
/*****************************
-
* HTTP_Request::setProxy()に対応するメソッドはありません。
-
* 代わりにHTTP_Request2::setConfig()メソッドで1つ1つ設定するか、配列でまとめて設定します。
-
*****************************/
-
-
/*
-
require_once "HTTP/Request.php";
-
-
$req =& new HTTP_Request("http://example.com/");
-
$req->setProxy("proxy.example.com", 8080, "johndoe", "foo");
-
-
*/
-
?>