Excelのマクロ(VBA)で、Webサイトにアクセスして、その内容や(WebAPIの場合)XMLを取得することができることは、ExcelVBAで、WebサイトにアクセスしたりWebAPIやXMLを使うで書いたとおりなんだけど、このとき、GETでアクセスするのなら問題はないです。
でも、Postの場合、GETをPOSTにして、送信内容をsendに書くだけでは、パラメータで取得できないようです(送れては、いるようだ)。
こう書かないといけないみたい
Sub main() On Error GoTo err Dim httpObj Dim sendData ' データセット target_url = "http://127.0.0.1:8080/test/servlet/PostCheck" sendData = "username=admin&password=pass" ' POSTで飛ばします Set httpObj = CreateObject("Microsoft.XMLHTTP") httpObj.Open "POST", target_url, False Call httpObj.setRequestHeader("Content-Type", "application/x-www-form-urlencoded") httpObj.send (sendData) ' 結果表示 MsgBox httpObj.ResponseText Exit Sub err: MsgBox "error" End Sub |
赤字のところに書いたように、setRequestHeaderで、"Content-Type"を"application/x-www-form-urlencoded"に指定しないといけないみたい。
こうしないと、サーブレット側のgetParameterでとれなかった。
ちなみに、Getの場合は問題なかったです。