masalibの日記

システム開発、運用と猫の写真ブログです

ClassicASPで外部にあるサーバーの画像を取得して、バイナリー出力する

前提

外部にあるサーバーは公開していない(IP制限している)のでユーザーに見せることができない

詳細

MSXML2.ServerXMLHTTPというオブジェクトで通信して
取得した結果をそのまま出力する
前回とほぼ同じ
masalib.hatenablog.com

ソース

Dim getURL
Dim objXMLHTTP
Dim objADOStream
Dim strHost			'ホスト名
Dim strPort			'ポート番号
Dim strRequest

Set objXMLHTTP = CreateObject("MSXML2.ServerXMLHTTP")
strHost = SERVER_XXXX		'直うちでもドメインでもOK		
strPort = SERVER_XXXX_PORT	'省略はできないみたい
strRequest = "/xxx/image.jpg"
getURL = "http://" & strHost & ":" & strPort  & strRequest

objXMLHTTP.open "GET", getURL, false
objXMLHTTP.send()

If objXMLHTTP.Status = 200 Then
	Set objADOStream = CreateObject("ADODB.Stream")
	objADOStream.Open
	objADOStream.Type = 1 'adTypeBinary
	objADOStream.Write objXMLHTTP.ResponseBody
	objADOStream.Position = 0    'Set the stream position to the start
	Response.BinaryWrite objADOStream.Read

	objADOStream.Close
	Set objADOStream = Nothing
End if

感想

basp21を使わないので64ビット環境でも動くと思う