VBA(Excel2007)でDOMDocumentのServerHTTPRequestでサーバからXMLを取得するシステムを作成しています。
loadするときのタイムアウトを設定することはできないのでしょうか?
また、タイムアウトなしの設定はできるのでしょうか?
ご存知の方がいましたらご教授よろしくお願いします。
○ソースコード
Dim url As String
Dim doc As MSXML2.DOMDocument
Set doc = New MSXML2.DOMDocument
url = "http://hogehoge.com/test.xml"
doc.async = False
doc.setProperty "ServerHTTPRequest", True
' ここの通信時のタイムアウトの設定を行いたいです。
doc.Load(url)
動的プロパティには、タイムアウトに関する情報は無いようですね。
http://msdn.microsoft.com/en-us/library/windows/desktop/ms766391.aspx
ServerXMLHTTP を直接利用するのは駄目ですか?
Dim oHttp As MSXML2.ServerXMLHTTP
Set oHttp = New MSXML2.ServerXMLHTTP60
'引数の意味は下記参照
' http://msdn.microsoft.com/ja-JP/ms760403.aspx
oHttp.SetTimeouts 0, 60000, 30000, 30000
url = "http://www.drk7.jp/weather/xml/13.xml"
oHttp.Open "GET", url, False
oHttp.Send
If oHttp.Status = 200 Then
'Set doc = New MSXML2.DOMDocument
'doc.async = False
'doc.LoadXML oHttp.responseXML
Set doc = oHttp.responseXML
End If
魔界の仮面弁士さん、返信ありがとうございます!
情報を頂きました、ServerXMLHTTPを直接使う方法で
うまくタイムアウトを行うことができました。
ありがとうございました!!
ツイート | ![]() |