ACCESSからHTTP経由でXMLなどを取得したい、といった場合は、
VBA Microsoft.XMLHTTP
あたりで検索すると、GETを用いた方法が結構出てきますが、データをPOSTしたい場合はちょっとだけ追記が必要だったので、記録しておきます。ちなみに、少しの文字列渡すだけならGETでも良いんじゃない?という意見も当然ありますが、受け側がCodeIgniterみたいなフレームワークを使用している場合は(設定によりますが)GETをすべからく殺してしまうので、POSTでないと駄目だったりします。
1.「メニュー」>「参照設定」から、「Microsoft XML. v6.0」にチェックを入れる
2.以下のような感じでPOSTする。 POSTの場合、Callの行のヘッダー出力が必要です。
dim httpObj, res ' POSTする Set httpObj = CreateObject("Microsoft.XMLHTTP") httpObj.Open "POST", "http://example.com/hoge.php", False 'httpObj.Open "POST", "http://example.com/hoge.php", False, "id", "pass" ' BASIC認証な場合、こんな感じで引数追加。 Call httpObj.setRequestHeader("Content-Type", "application/x-www-form-urlencoded") ' POSTの場合はこれが必要。 httpObj.send ("param1=hoge¶m2=fuga") ' GETの場合は引数無しで。 Set res = httpObj.responseXML MsgBox res.XML
コメント