ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

ExcelVBAで、POSTでWebサイトにアクセスするときの注意点

2007-08-24 15:13:26 | Officeソフト&VBA

 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の場合は問題なかったです。

この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« Googleマップ、ブログやWebに... | トップ | サーブレットに送られてくる... »
最新の画像もっと見る

Officeソフト&VBA」カテゴリの最新記事