[php][pear]HTTP_Request2のサンプル#3

カテゴリ: php / author: uechoco / 2009年01月21日 23:34:32
この記事を読む時間:113くらい

この記事は、HTTP_Requestのマニュアルに載っている全サンプルコードをHTTP_Request2対応で書き換えてみる企画の3回目です。HTTP_Request2クラスの概要を知りたい方は、下記リンクの#1を参照ください。

全記事へのリンク:

#6 PDF 文章をアップロードする

php:
  1. <?php
  2. /**
  3.  * 例 48-6 PDF 文章をアップロードする
  4.  *
  5.  * この例では、/home/johndoe/text.pdf というファイルが
  6.  * リモートにあるマシン upload.example.com に johndoe-text.pdf という名前で
  7.  * アップロードされます。 さらに、ジョンが何かをアップロードする事を許可されていることを
  8.  * 保証するために、Basic 認証が使用されています。
  9.  *
  10.  * @link http://pear.php.net/manual/ja/package.http.http-request.file-upload.php
  11.  */
  12. require_once 'HTTP/Request2.php';
  13.  
  14. try {
  15.     $req = new HTTP_Request2("http://upload.example.com/upload.php", HTTP_Request2::METHOD_POST);
  16.     $req->setAuth("johndoe", "foo", HTTP_Request2::AUTH_BASIC);
  17.     $req->addUpload("johndoe-txt.pdf", "/home/johndoe/text.pdf");
  18.     $response = $req->send();
  19.     echo $response->getBody();
  20. } catch (HTTP_Request2_Exception $e) {
  21.     die($e->getMessage());
  22. } catch (Exception $e) {
  23.     die($e->getMessage());
  24. }
  25.  
  26. /*****************************
  27.  * HTTP_Request::addFile()はHTTP_Request2->addUpload()に変更されました。
  28.  *****************************/
  29.  
  30. /*
  31. require_once "HTTP/Request.php";
  32.  
  33. $req =& new HTTP_Request("http://upload.example.com/upload.php");
  34. $req->setBasicAuth("johndoe", "foo");
  35. $req->setMethod(HTTP_REQUEST_METHOD_POST);
  36.  
  37. $result = $req->addFile("johndoe-txt.pdf", "/home/johndoe/text.pdf");
  38. if (PEAR::isError($result)) {
  39.     echo $result->getMessage();
  40. } else {
  41.  
  42.     $response = $req->sendRequest();
  43.  
  44.     if (PEAR::isError($response)) {
  45.         echo $response->getMessage();
  46.     } else {
  47.         echo $req->getResponseBody();
  48.     }
  49. }
  50. */
  51. ?>

#7 カスタムリクエストヘッダの追加

php:
  1. <?php
  2. /**
  3.  * 例 48-7 カスタムリクエストヘッダの追加
  4.  *
  5.  * 以下の例では、HTTP ヘッダ X-PHP-Version が HTTP リクエストに追加されます。
  6.  * このヘッダの値は、 HTTP_Request  インスタンスが動作している PHP インタプリタのバージョン文字列です。
  7.  *
  8.  * @link http://pear.php.net/manual/ja/package.http.http-request.headers.php
  9.  */
  10. require_once 'HTTP/Request2.php';
  11.  
  12. try {
  13.     $req = new HTTP_Request2("http://example.com/");
  14.     $req->setHeader("X-PHP-Version", phpversion());
  15.  
  16.     $response = $req->send();
  17.     echo $response->getBody();
  18.  
  19. } catch (HTTP_Request2_Exception $e) {
  20.     die($e->getMessage());
  21. } catch (Exception $e) {
  22.     die($e->getMessage());
  23. }
  24.  
  25. /*****************************
  26.  * HTTP_Request::addHeader()はHTTP_Request2->setHeader()に変更されました。
  27.  * 配列での一括指定や"header:value"形式の文字列でも受け付けるようになりました。
  28.  *****************************/
  29.  
  30. /*
  31. require_once "HTTP/Request.php";
  32.  
  33. $req =& new HTTP_Request("http://example.com/");
  34. $req->addHeader("X-PHP-Version", phpversion());
  35.  
  36. $response = $req->sendRequest();
  37.  
  38. if (PEAR::isError($response)) {
  39.     echo $response->getMessage();
  40. } else {
  41.     echo $req->getResponseBody();
  42. }
  43.  
  44. */
  45. ?>

#8 匿名アクセスでプロキシサーバを利用する

php:
  1. <?php
  2. /**
  3.  * 例 48-8 匿名アクセスでプロキシサーバを利用する
  4.  *
  5.  *  この例では、プロキシサーバがポート 8080  で待機しており、
  6.  * example.com への外向き接続の代理(プロキシ)を行っている
  7.  * proxy.example.com というホスト名のマシンを 利用しようとしている、と想定しています。
  8.  *
  9.  * setProxy() の二番目のパラメータはオプションで、 デフォルトは 8080 です。
  10.  *
  11.  * @link http://pear.php.net/manual/ja/package.http.http-request.proxy-auth.php
  12.  */
  13. require_once 'HTTP/Request2.php';
  14.  
  15. try {
  16.     $req = new HTTP_Request2("http://example.com/");
  17.     $req->setConfig(array(
  18.         'proxy_host' => 'proxy.example.com',
  19.         'proxy_port' => '8080',
  20.     ));
  21.     // $req->setConfig('proxy_host', 'proxy.example.com');
  22.     // $req->setConfig('proxy_port', '8080');
  23.  
  24.     $response = $req->send();
  25.     echo $response->getBody();
  26.  
  27. } catch (HTTP_Request2_Exception $e) {
  28.     die($e->getMessage());
  29. } catch (Exception $e) {
  30.     die($e->getMessage());
  31. }
  32.  
  33. /*****************************
  34.  * HTTP_Request::setProxy()に対応するメソッドはありません。
  35.  * 代わりにHTTP_Request2::setConfig()メソッドで1つ1つ設定するか、配列でまとめて設定します。
  36.  *****************************/
  37.  
  38. /*
  39. require_once "HTTP/Request.php";
  40.  
  41. $req =& new HTTP_Request("http://example.com/");
  42. $req->setProxy("proxy.example.com", 8080);
  43. */
  44. ?>

#9 プロキシ認証の利用

php:
  1. <?php
  2. /**
  3.  * 例 48-9 プロキシ認証の利用
  4.  *
  5.  * これは、プロキシサーバでのユーザー認証のためのユーザー名/パスワードの
  6.  * タプルが提供されていることを除いて、上記と同じ例です:
  7.  * ユーザー名は johndoe で付随するパスワードは foo です。
  8.  *
  9.  * @link http://pear.php.net/manual/ja/package.http.http-request.proxy-auth.php
  10.  */
  11. require_once 'HTTP/Request2.php';
  12.  
  13. try {
  14.     $req = new HTTP_Request2("http://example.com/");
  15.     $req->setConfig(array(
  16.         'proxy_host' => 'proxy.example.com',
  17.         'proxy_port' => '8080',
  18.         'proxy_user' => 'johndoe',
  19.         'proxy_password' => 'foo',
  20.     ));
  21.     // $req->setConfig('proxy_host', 'proxy.example.com');
  22.     // $req->setConfig('proxy_port', '8080');
  23.     // $req->setConfig('proxy_user', 'johndoe');
  24.     // $req->setConfig('proxy_password', 'foo');
  25.  
  26.     $response = $req->send();
  27.     echo $response->getBody();
  28.  
  29. } catch (HTTP_Request2_Exception $e) {
  30.     die($e->getMessage());
  31. } catch (Exception $e) {
  32.     die($e->getMessage());
  33. }
  34.  
  35. /*****************************
  36.  * HTTP_Request::setProxy()に対応するメソッドはありません。
  37.  * 代わりにHTTP_Request2::setConfig()メソッドで1つ1つ設定するか、配列でまとめて設定します。
  38.  *****************************/
  39.  
  40. /*
  41. require_once "HTTP/Request.php";
  42.  
  43. $req =& new HTTP_Request("http://example.com/");
  44. $req->setProxy("proxy.example.com", 8080, "johndoe", "foo");
  45.  
  46. */
  47. ?>


コメントはまだありません »

コメントはまだありません。

この投稿へのコメントの RSS フィード。 TrackBack URI

コメントする

Copyright © 2012 うえちょこ@ぼろぐ. WP Theme created by Web Top.