Httpクライアント
Http Client
Httpクライアントとして動作させる方法をいくつかメモしておきます。
簡単な取得
//簡単な取得 googleのトップページを取得 S hr=##class(%Net.HttpRequest).%New()
S hr.Server="www.google.co.jp"
S st=hr.Get("/")
if st
{ D hr.HttpResponse.OutputToDevice()
} else {
D $System.Status.DisplayError(st)
}
動作結果例 (hr.HttpResponse.OutputToDevice()の結果が表示されています)
HTTP/1.1 200 OK
CACHE-CONTROL: private, max-age=0
CONNECTION: close
CONTENT-TYPE: text/html; charset=Shift_JIS
(略)
indow.addEventListener)window.addEventListener("load",a,false);else if(window.attachEvent)window.attachEvent("onload",a);google.timers.load.t.prt=(new
Date).getTime();})();</script>
Proxy経由で取得
//Proxy経由で取得 S hr=##class(%Net.HttpRequest).%New()
S hr.Server="www.google.co.jp"
S hr.ProxyServer =
"プロキシサーバーアドレス" S hr.ProxyPort =
"プロキシサーバーポート"
S st=hr.Get("/")
if st
{ D hr.HttpResponse.OutputToDevice()
}else{
D $System.Status.DisplayError(st)
}
Proxy + SSLで取得
Cache'2009以降でのみ動作するようです。
//Proxy + SSLで取得 (Cache'2009以降) S hr=##class(%Net.HttpRequest).%New()
S hr.Server="プロキシサーバーポート"
S hr.ProxyServer="プロキシサーバーアドレス"
S hr.ProxyPort="プロキシサーバーポート"
S hr.ProxyHTTPS=1
S hr.ProxyTunnel=1
S hr.SSLConfiguration =
"https" //構成マネージャでのSSL/TLS構成名
S st=hr.Get("/accounts/ServiceLogin")
if st
{ D hr.HttpResponse.OutputToDevice()
}else{
D $System.Status.DisplayError(st)
}
SSLでページを取得する場合は、事前にシステム管理ポータル→セキュリティ管理→SSL/TLS構成→新規構成の作成 で、SSL構成を作成しておく必要があります。
とりあえずページを取得するだけであれば、以下のような設定で動作します。
SSL+ベーシック認証で取得
//SSL+ベーシック認証で取得 S hr=##class(%Net.HttpRequest).%New()
S hr.Server="192.168.123.10"
S hr.SSLConfiguration =
"https" //構成マネージャでのSSL/TLS構成名
//ベーシック認証
S hr.Username="認証ユーザー名"
S hr.Password="認証パスワード"
S st=hr.Get("/mob/?moid=128")
if st
{ D hr.HttpResponse.OutputToDevice()
}else{
D $System.Status.DisplayError(sts)
}
VMware WebServiceへの接続に使用しました。
|