Hatena::Groupuwsc

WinHttp.WinHttpRequest

主要な Windows 標準コンポーネントの一覧 → http://uwsc.g.hatena.ne.jp/keyword/ProgID
UWSC 基礎文法最速マスター → http://uwsc.g.hatena.ne.jp/cx20/20100131/1264938584

WinHttp.WinHttpRequest

WinHttp.WinHttpRequest

概要

WinHttp.WinHttpRequest は、WinHTTP オブジェクト を表す ProgID です。

WinHttp.WinHttpRequest を使用することで、Web サーバーに情報を送信したり受信することが可能です。

ライブラリの実装には WinHTTP(HTTP通信専用コンポーネント)が用いられています。

WinHTTP は Windows Update の更新用サービス(Background Intelligent Transfer Service)等でも使用されています。

同様のライブラリに WinINet ベースの MSXML2.XMLHTTP と WinHTTP ベースの MSXML2.ServerXMLHTTP があります。

サンプル

// File : SaveUrlToFile.uws
// Description : UWSC から WinHTTP を使用して Web の内容を保存するサンプル。
Option Explicit

Main()

Procedure Main()
    Dim strURL
    strURL = "http://www.hatena.ne.jp/"
    Dim strFileName
    strFileName = "hatena.txt"
    SaveUrlToFile( strURL, strFileName )
Fend

Procedure SaveUrlToFile( strURL, strFileName )
    Dim http
    http = CreateOleObj("WinHttp.WinHttpRequest.5.1") 
    http.Open( "GET", strURL, False )
    http.Send

    Dim strMessage
    Dim bOverwrite
    Dim bUnicode
    strMessage = http.ResponseText
    bOverwrite = True
    bUnicode = True // UNICODE のページを SJIS のファイルに保存するとエラーが発生することがある為、UNICODE 形式にしています。
    WriteToToFile( strMessage, strFileName, bOverwrite, bUnicode )
Fend

Procedure WriteToToFile( strMessage, strFileName, bOverwrite, bUnicode )
    Dim fso
    fso = CreateOleObj("Scripting.FileSystemObject")
    Dim file
    file = fso.CreateTextFile(strFileName, bOverwrite, bUnicode)
    file.Write( strMessage )
    file.Close
Fend

実行結果

ようこそゲストさん … IE の Cookie が使用されない為、ゲストユーザーとしてアクセスします。
ユーザー登録
ログイン
ヘルプ

利用可能な WinHTTP のバージョン

OS5.05.1
Microsoft Windows NT 4.0*1 
Microsoft Windows 2000*2*3
Microsoft Windows XP *4
Microsoft Windows Server 2003 *5
Microsoft Windows Vista 
Microsoft Windows 7(beta) 

参考情報

*1Windows NT 4.0 + IE5 以上。ただし WinHTTP 5.0 は 2004年10月にサポート切れの為、現在はダウンロードできません。

*2Windows 2000 以上。ただし WinHTTP 5.0 は 2004年10月にサポート切れの為、現在はダウンロードできません。

*3Windows 2000 SP3 以上

*4Windows XP SP1 以上

*5Windows Server 2003 SP1 以上