- 締切済み
WinInet.dll で HTTPS へ POST できません
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)) 手続き部分は、順番も含めて上記の通りです。 これ以外のことはやっていません。 これ以外にやっておかなければいけないことや、上記のやり方ではよくない部分などありましたら、ご教授いただけると助かります。 よろしくお願いします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- nishito24
- ベストアンサー率90% (10/11)
12029の意味を調べてみましたか? ERROR_INTERNET_CANNOT_CONNECT The attempt to connect to the server failed. サーバー接続が失敗ということですが、セキュリティソフトの影響は考えられませんか? > Dim tmpURL As String * 255 Dim tmpURL As String でいいのでは?