1

HTTP と FTP の両方で、Wininet に Internet Explorer の「オフライン作業」モードを無視させようとしています。

だから私はで使用しようとしてInternetSetOption()いますINTERNET_OPTION_IGNORE_OFFLINE。ドキュメントには、「これは、リクエスト ハンドルによってInternetQueryOption、およびInternetSetOptionリクエスト ハンドルとともに使用される」と記載されています。ただし、IE がオフライン作業モードの場合InternetConnect()は常に null ハンドルが返されるため、要求ハンドルを取得することはできません。接続ハンドルがないと、要求ハンドルを取得できません。InternetOpen()ということで、ハンドルとハンドルで使ってみましたNULL。どちらも で失敗しましERROR_INTERNET_INCORRECT_HANDLE_TYPEた。

このオプションを機能させる方法はありますか? 2003 年の MS ニュースグループで、INTERNET_OPEN_TYPE_PRECONFIG「壊れた」リファレンスを見つけました。IE8 ベータ 2 で 5 年後、まだ修正されていませんか? それとも私はそれを間違っていますか?

編集
私は完全に正しくありませんでした。 InternetConnect()「オフライン作業」モードで FTP を使用している場合は常に null を返しますが、Http を使用している場合は有効なハンドルを返します。ただし、リクエストハンドルを使用してもまだ機能しません。

「オフラインで作業」に設定されていて、電話をかけた場合

BOOL a = TRUE;
::InternetSetOption(hData, INTERNET_OPTION_IGNORE_OFFLINE, &a, sizeof(BOOL));

からハンドルに

HINTERNET hData = HttpOpenRequest(hInternet, L"POST", path, NULL, NULL, NULL, flags, 0 );

InternetSetOption()呼び出しは成功します。
ただし、HttpSendRequest()オプションを設定しない場合と同様に、への呼び出しはエラー コード 2 (ファイルが見つかりません) で失敗します。
電話しても同じこと

::InternetSetOption(hData, INTERNET_OPTION_IGNORE_OFFLINE, 0, 0);
4

2 に答える 2

1

INTERNET_OPTION_IGNORE_OFFLINEWinInetのIE9バージョンでの使用を確認しましたが、動作しているようです。

HttpOpenRequestを呼び出す前に、必ずInternetSetOptionを呼び出して、代わりにhInternetハンドルを渡してください。このオプションは、リクエストが実際にサーバーに送信される前に設定する必要があります。HttpOpenRequest

+++リック---

于 2011-04-21T05:03:21.190 に答える
0

ヘッダーで追加データを送信するGET代わりに試しましたか?POST

たとえば、REST-ful API では、POST 要求は Create、Update、Delete、および GET to Read と同等であり、オフライン モードを中断する可能性があります。推測するだけで...

于 2009-01-22T22:46:03.197 に答える