2

私が経験した次の問題に混乱しています。IE 8.0がインストールされたWindows 2008 R2マシンを使用します。次に、プログラムでInternetConnect呼び出しを使用してサーバーに接続しようとします (認証資格情報は、渡される引数として提供されます)。それは成功します。次にHttpOpenRequestHttpSendRequestを呼び出します。HttpOpenRequestおよびHttpSendRequestへの呼び出しは、返されたInternetConnect呼び出しと同じ接続ハンドルを使用して実行されます。ある時点で、HttpSendRequestが失敗し始めます。トラフィック キャプチャから、認証情報が欠落しており、サーバーが順番に401を返すことがわかります結果。INTERNET_OPTION_USERNAMEINTERNET_OPTION_PASSWORDを指定してInternetSetOptionを呼び出しても、効果はありません。HttpSendRequestが失敗した後、 GetLastErrorを呼び出し、最初にERROR_HTTP_INVALID_SERVER_RESPONSEを受け取り、2 番目にHttpSendRequestでリクエストを再送信しようとするとERROR_INTERNET_INCORRECT_HANDLE_STATEを受け取ります。

たぶん、あなたの誰かが同様の問題を経験しましたか?

4

1 に答える 1

0

クライアントの動作の通常の方法であることを発見しました。最初に匿名でリソースに接続しようとし、失敗した場合は資格情報を使用しようとします。1 つの関数呼び出し内で、401 の結果が 1 つでも問題ありません。これは、次の要求が認証資格情報と共に送信されるためです。

于 2013-10-02T16:08:00.440 に答える