PHP WEBアクセス Class †DOWNLOAD †バージョン 2010.10.31 Methods †
サンプル1 †YahooトップページHTML取得 <?php
require_once 'WebRequest.class.php';
$test = new WebRequest('http://www.yahoo.co.jp/');
echo $test->sendGet();
exit;
サンプル2 †AltSpaceに記事を自動投稿 <?php
require_once 'WebRequest.class.php';
$test = new WebRequest('https://ssl.altspace.jp/login.php?');
$test->set('_form_name_', 'login');
$test->set('username', 'XXXXXXXXXXXXX');
$test->set('password', 'XXXXXXXXXXXXX');
$test->sendPost();
$token = $test->getCookies();
$test->setUrl('http://altspace.jp/comm_article.php?cid=1131&aid=121682');
$test->set('_form_name_', 'article_comment');
$test->set('BSNSESSID', $token['BSNSESSID']); // Cookieセット(CSRF)
$test->set('MAX_FILE_SIZE', '5242880');
$test->set('cid', '1131');
$test->set('aid', '121682');
$test->set('comment', '投稿テスト');
$test->sendPost();
exit;
サンプル3 †Google Reader スターブックマーク 一覧取得 <?php
require_once 'WebRequest.class.php';
// === SID取得 ===
$test = new WebRequest('https://www.google.com/accounts/ClientLogin');
$test->set('Email', 'XXXXXXXXXXXXX');
$test->set('Passwd', 'XXXXXXXXXXXXX');
$test->set('service', 'reader');
$test->set('source', 'tatenosystem-api-001');
$response = $test->sendPost();
$desc = explode("\n", $response);
$sid = str_replace('SID=', '', $desc[0]);
$lsid = str_replace('LSID=', '', $desc[1]);
$auth = str_replace('Auth=', '', $desc[2]);
echo "[SID]", $sid ."\n";
echo "[LSID]", $lsid ."\n";
echo "[AUTH]", $auth ."\n";
// === トークン取得 ===
$test->setUrl('http://www.google.com/reader/api/0/token');
$test->setCookie("SID", $sid);
$test->setCookie("LSID", $lsid);
$test->setHeader('Authorization', 'GoogleLogin auth='.$auth);
$token = $test->sendGet();
echo "[T]", $token ."\n";
// === 内容取得 ===
$test->setUrl('http://www.google.com/reader/atom/user/-/state/com.google/starred?n=200');
$test->setCookie("SID", $sid);
$test->setCookie("LSID", $lsid);
$test->setCookie("T", $token);
$test->setHeader('Authorization', 'GoogleLogin auth='.$auth);
$response = $test->sendGet();
$configObj = @simplexml_load_string($response);
foreach ($configObj->entry as $obj) {
echo '<a href="'. $obj->link['href'] .'">';
echo $obj->title .'<br />';
echo '</a>';
echo $obj->link['href'] .'<br />';
echo ' <br />';
echo "\n";
}
exit;
サンプル4 †Yahooロゴ画像取得保存 <?php
require_once 'WebRequest.class.php';
$test = new WebRequest('http://k.yimg.jp/images/top/sp/logo.gif');
$data = $test->sendGet();
$test->fileWrite('yahoo.gif', $data);
exit;
エラー表示 †getErrorMessage() メソッドで確認することができます。 $test = new WebRequest('https://www.inmobi.co.jp/app/login.html');
$test->set('name', 'hoge');
$data = $test->sendPost();
if ($data === false) {
echo $test->getErrorMessage();
}
PEARの不具合 †「HTTP/Request」は <meta http-equiv='Refresh'> のリダイレクトをたどってくれますが、 その場合は、setRedirectCountメソッドを0にしてリダイレクトを行わず、 $http->setReferer('http://hogehoge/');
$http->setRedirectCount(0);
$http->set('name', "tatenosystem");
$data = $http->sendPost();
if ($http->getCode() !== 302) exit;
$headers = $http->getHeaders();
$http->setUrl($headers['location']);
$http->setRedirectCount(5);
$data = $http->sendGet();
参考URL †
|