Posts Tagged “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');

Comments ベーシック認証のかかっている別サイトにJPEG画像を生データでPOSTするメモ はコメントを受け付けていません。