Posts tagged ‘http’

このエントリーをはてなブックマークに追加
[`livedoor` not found]

vbscriptでmsxmlを利用してhttpアクセスする例です。
第一引数はアクセスするURL、第二引数はアクセスした内容を保存するファイル名です。

「Set OBJ_Http = WScript.CreateObject(“MSXML2.ServerXMLHTTP”)」の部分は、
「Set OBJ_Http = WScript.CreateObject(“Microsoft.XMLHTTP”)」としてもアクセス出来ます。

違いについてはMicrosoftのサポート情報を参照して下さい。
http://support.microsoft.com/kb/290761/ja

 

[vb]

Option Explicit

Dim OBJ_Args

Set OBJ_Args = WScript.Arguments

If OBJ_Args.Count <> 2 Then

WScript.Echo “Usage: httpget URL Path”
WScript.Quit 1

Else

HttpGet OBJ_Args(0),OBJ_Args(1)

End If

Sub HttpGet(ByVal STR_URL, ByVal STR_Path)

Const adTypeBinary = 1 ‘Binary
Const adTypeText = 2 ‘Text

Const adSaveCreateNotExist = 1
Const adSaveCreateOverWrite = 2

Dim OBJ_Http
Dim OBJ_ADO

Set OBJ_Http = WScript.CreateObject(“MSXML2.ServerXMLHTTP”)

Call OBJ_Http.Open(“GET”, STR_URL, False)

If Err.Number <> 0 Then

WScript.Echo “エラー:” & Err.Description
WScript.Quit 1

End If

OBJ_Http.Send

If Err.Number <> 0 Then

WScript.Echo “エラー:” & Err.Description
WScript.Quit 1

End If

If OBJ_Http.status <> 200 Then

WScript.Echo “Return Coad:” & OBJ_Http.status
WScript.Quit 1

End If

Set OBJ_ADO = WScript.CreateObject(“ADODB.Stream”)

OBJ_ADO.Type = adTypeBinary
OBJ_ADO.Open
OBJ_ADO.Position = 0

OBJ_ADO.Write OBJ_Http.responseBody
OBJ_ADO.SaveToFile STR_Path, adSaveCreateNotExist
OBJ_ADO.Close

Set OBJ_Http = Nothing
Set OBJ_ADO = Nothing

End Sub
[/vb]

VN:F [1.9.22_1171]
Rating: 7.8/10 (4 votes cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)
このエントリーをはてなブックマークに追加
[`livedoor` not found]

Winhttpでhttpリクエストを行い、Cドライブ直下に”test.gif”というファイルにリクエスト結果を保存する例です。

[vb]

Option Explicit

  Const OpenFileForReading   = 1
  Const OpenFileForWriting   = 2
  Const OpenFileForAppending = 8

  Const adTypeBinary = 1 ‘Binary
  Const adTypeText   = 2 ‘Text

  Const adSaveCreateNotExist  = 1
  Const adSaveCreateOverWrite = 2
  HTTPDownload “http://dragon-ark.com/wp-content/uploads/2008/12/20081231_1-300×166.gif” , “c:\test.gif”

 Sub HTTPDownload(ByVal STR_URL, ByVal STR_Path )
    Dim OBJ_ADO
    Dim OBJ_HTTP
    Dim STR_Temp

    Set OBJ_ADO  = CreateObject(“ADODB.Stream”)

    OBJ_ADO.Type = adTypeBinary
    OBJ_ADO.Open
    OBJ_ADO.Position = 0

    Set OBJ_HTTP = CreateObject(“WinHttp.WinHttpRequest.5.1”)

    OBJ_HTTP.Open “GET”, STR_URL, False
    OBJ_HTTP.Send

    STR_Temp = OBJ_HTTP.ResponseBody
    OBJ_ADO.Write STR_Temp
    OBJ_ADO.SaveToFile STR_Path, adSaveCreateNotExist
    OBJ_ADO.Close
End Sub
[/vb]

Scriptのダウンロードは こちら です。

VN:F [1.9.22_1171]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.22_1171]
Rating: +1 (from 1 vote)
このエントリーをはてなブックマークに追加
[`livedoor` not found]

Winhttpでhttpリクエストを行い、Cドライブ直下に”test.txt”というファイルにリクエスト結果を保存する例です。

[vb]

Option Explicit

  Const OpenFileForReading   = 1
  Const OpenFileForWriting   = 2
  Const OpenFileForAppending = 8

  HTTPDownload “http://google.co.jp/index.html” , “c:\text.txt”
Sub HTTPDownload(ByVal STR_URL, ByVal STR_Path )
    Dim OBJ_File
    Dim OBJ_FSO
    Dim OBJ_HTTP

    Set OBJ_FSO  = CreateObject(“Scripting.FileSystemObject”)
    Set OBJ_File = OBJ_FSO.OpenTextFile(STR_Path, OpenFileForWriting, True)
    Set OBJ_HTTP = CreateObject(“WinHttp.WinHttpRequest.5.1”)

    OBJ_HTTP.Open “GET”, STR_URL, False
    OBJ_HTTP.Send

    OBJ_File.Write  OBJ_HTTP.ResponseText
    OBJ_File.Close( )
End Sub

[/vb]

Scriptのダウンロードは こちら です。

VN:F [1.9.22_1171]
Rating: 9.0/10 (1 vote cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)