HttpSendRequest を使用して (https 経由で) URL を要求する C++ Win32 アプリがあります。以前は問題なく機能していました。しかし、エラー ERROR_INTERNET_INCORRECT_HANDLE_STATE が発生し始めました。なぜこれらのもの?何か案は?
3 に答える
Windows XP で、HTTP2 サーバー エンドポイントの HTTPS 接続 (すべてのフラグが正しい) で同じエラーが発生しました。HTTP2 接続または証明書を適切に処理できないのでしょうか。
些細なことのようですが、HttpOpenRequest を作成する際に INTERNET_FLAG_SECURE フラグを立てましたか? http://support.microsoft.com/kb/168151で説明されているように
私自身、上記のナレッジ ベース エントリを見つけるまで、何時間もここで立ち往生していたからです。
最近、よく似たものを見つけました。HttpOpenRequestが失敗したか、まだ完了していないか、HttpSendRequest() 呼び出し中に何らかの理由 (SSL ハンドシェイクの問題、証明書の問題、または単純な TCP 接続の問題) で接続が切断されたことを示唆しています。
非同期の WinINET プロセスを使用してアプリを開発しているときに問題が発生し、HttpQueryInfo と InternetReadFile への呼び出しがそのリターン コードで失敗していました。
私の場合、他のメソッドを呼び出す前に HttpSendRequest からの非同期通知が受信されるのを正しく待機していませんでした。また、接続中の障害を正しく処理していなかった場合もありました。
1年遅れていることはわかっていますが、うまくいけば役に立ちます。