8月
25
2008
ベーシック認証のかかっている別サイトにJPEG画像を生データでPOSTするメモ
投稿者: lllnorikolll, カテゴリ: ZendFramework, メモ箱, tags: PHP, Zend_Http苦労したのでメモ。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | $Url = 'http://ほげほげー.com/ほげー/ほげー.php'; $UserId = 'ユーザID'; $Pwd = 'パスワード'; $binaryData = @file_get_contents(’ファイル名’, FILE_BINARY); $arrUrl = parse_url($Url); $host = $arrUrl["host"]; $path = $arrUrl["path"]; $port = isset($arrUrl["port"]) ? $arrUrl["port"] : 80; $socket = @stream_socket_client('tcp://' . $host . ':' . $port); $strHeader = "POST " . $path . " HTTP/1.1\r\n" . "Host: " . $host . "\r\n" . "Content-type: application/jpeg\r\n" . "Authorization: Basic " . base64_encode($UserId . ":" . $Pwd) . "\r\n" . "Content-length: " . $entity->size . "\r\n" . "\r\n"; @fwrite($socket, $strHeader . $binaryData . "\r\n"); while ($buff = @fread($socket)) { $response .= $buff; } @fclose($socket); |
ちなみにZendFrameworkのライブラリにZend_Httpという便利なものがあります!!!
Zend_Httpなら、下記のように書くだけ!
1 2 3 4 5 6 7 8 9 10 11 | require_once 'Zend/Http/Client.php'; $Url = 'http://ほげほげー.com/ほげー/ほげー.php'; $UserId = 'ユーザID'; $Pwd = 'パスワード'; $binaryData = @file_get_contents(’ファイル名’, FILE_BINARY); $client = new Zend_Http_Client(); $client->setUri($Url); $client->setAuth($UserId, $Pwd, Zend_Http_Client::AUTH_BASIC); $client->setRawData($binaryData, 'application/jpeg')->request('POST'); |

エントリ (RSS)