[an error occurred while processing this directive] [an error occurred while processing this directive]


プログラミング
逆引き
クライアントとの通信
VisMでの通信
Factoryでの通信
WebServiceでの通信
CSP (Cache' Server Pages)
Cache'SQL
設定・性能


【広告】









Httpクライアント

Http Client



Httpクライアントとして動作させる方法をいくつかメモしておきます。

簡単な取得

 //簡単な取得 googleのトップページを取得
 hr=##class(%Net.HttpRequest).%New()
 hr.Server="www.google.co.jp"
 st=hr.Get("/")
 if st {
   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経由で取得
 hr=##class(%Net.HttpRequest).%New()
 hr.Server="www.google.co.jp"

 hr.ProxyServer = "プロキシサーバーアドレス"
 hr.ProxyPort = "プロキシサーバーポート"

 st=hr.Get("/")
 if st {
  hr.HttpResponse.OutputToDevice()
 }else{
  D $System.Status.DisplayError(st)
 }

Proxy + SSLで取得

Cache'2009以降でのみ動作するようです。
 //Proxy + SSLで取得 (Cache'2009以降)
 hr=##class(%Net.HttpRequest).%New()
 hr.Server="プロキシサーバーポート"

 hr.ProxyServer="プロキシサーバーアドレス"
 hr.ProxyPort="プロキシサーバーポート"
 hr.ProxyHTTPS=1
 hr.ProxyTunnel=1
 hr.SSLConfiguration = "https" //構成マネージャでのSSL/TLS構成名

 st=hr.Get("/accounts/ServiceLogin")
 if st {
  hr.HttpResponse.OutputToDevice()
 }else{
  D $System.Status.DisplayError(st)
 }
SSLでページを取得する場合は、事前にシステム管理ポータル→セキュリティ管理→SSL/TLS構成→新規構成の作成 で、SSL構成を作成しておく必要があります。 とりあえずページを取得するだけであれば、以下のような設定で動作します。

SSL+ベーシック認証で取得

 //SSL+ベーシック認証で取得
 hr=##class(%Net.HttpRequest).%New()
 hr.Server="192.168.123.10"
 hr.SSLConfiguration = "https" //構成マネージャでのSSL/TLS構成名

 //ベーシック認証
 hr.Username="認証ユーザー名"
 hr.Password="認証パスワード"
 st=hr.Get("/mob/?moid=128")
 if st {
  hr.HttpResponse.OutputToDevice()
 }else{
  D $System.Status.DisplayError(sts)
 }
VMware WebServiceへの接続に使用しました。


[an error occurred while processing this directive] [an error occurred while processing this directive]
2014/02/04Update