プロが教える店舗&オフィスのセキュリティ対策術

 WinInet.dll を使って、HTTPS サーバーへデータを POST するプログラムを作っています。開発言語は VB6 です。
 HttpSendRequest で 12029 エラーとなり原因が分かりません。
 HTTP 通信テストツールの RESTTEST を使ったテストでは正常に終了しています(HTTPステータス 200 が返っている)ので、回線やインターネット設定(ファイヤーウォールの問題など)は問題ないと思われます。

 ソースから手続きの部分だけ抜き出して、下記に示します。
 (エラーチェックなどはソース上にはありますが、ここでは省いています)

 手続き上何か抜けが無いかご指摘いただけると助かります。


  'インターネットサービスをオープンする
  lngWinINet = InternetOpen(vbNullString, _
               INTERNET_OPEN_TYPE_PRECONFIG, _
               vbNullString, _
               vbNullString, _
               0)

  'HTTPサーバへ接続
  lngHttpHnd = InternetConnect(lngWinINet, _
                 "www.test.jp", _
                 INTERNET_DEFAULT_HTTPS_PORT, _
                 vbNullString, _
                 vbNullString, _
                 INTERNET_SERVICE_HTTP, _
                 0, _
                 0)

  'リクエストを初期化
  Dim tmpURL As String * 255
  Dim lngSecFlag As Long
  lngSecFlag = INTERNET_FLAG_SECURE Or _
         INTERNET_FLAG_IGNORE_CERT_CN_INVALID Or _
         INTERNET_FLAG_IGNORE_CERT_DATE_INVALID
  tmpURL = "/testdir/test.php"
  lngReqHnd = HttpOpenRequest(lngHttpHnd, _
                "POST", _
                tmpURL, _
                "HTTP/1.1", _
                vbNullString, _
                0, _
                INTERNET_FLAG_RELOAD Or lngSecFlag, _
                0)

  'リクエストを送信
  Dim strHeader As String
  Dim strPostData As String
  strHeader = "Content-Type: application/x-www-form-urlencoded"
  strPostData = "TEST1=aaa&TEST2=bbbbb"
  Call HttpSendRequest(lngReqHnd, _
             strHeader, _
             Len(strHeader), _
             strPostData, _
             Len(strPostData))


 手続き部分は、順番も含めて上記の通りです。
 これ以外のことはやっていません。

 これ以外にやっておかなければいけないことや、上記のやり方ではよくない部分などありましたら、ご教授いただけると助かります。

 よろしくお願いします。

A 回答 (1件)

12029の意味を調べてみましたか?


ERROR_INTERNET_CANNOT_CONNECT
The attempt to connect to the server failed.
サーバー接続が失敗ということですが、セキュリティソフトの影響は考えられませんか?

> Dim tmpURL As String * 255
Dim tmpURL As String
でいいのでは?
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!