小さなファイルの Web サイトにアクセスする機能を持つ MFC アプリケーションで Visual Studio 2005 を使用しています。WinINet
関数を使用しています。Microsoft Windows Dev Center の WinINet API リファレンスを参照してください。これは、プロトコル (HTTP、HTTPS、FTP など) を指定する URL を使用して Web サイトにアクセスする単純な関数セットを提供し、小さな値をプルダウンします。ファイル。
このサイトを見ると、libcurl
このマイクロソフト テクニカル ノートへの参照がありました。記事 ID 238425 - 情報: WinInet は、2015 年 8 月 12 日に廃止されたサービスでの使用がサポートされていません。記事の要約は次のとおりです。
Microsoft Win32 Internet Functions (WinInet.dll からエクスポート) は、サービスまたは Internet Information Server (IIS) アプリケーション (サービスでもあります) から実行する場合はサポートされません。この記事では、サービスまたは Internet Information Server アプリケーションでの WinInet.dll の使用について説明します。
MFC アプリケーションで使用している該当するソース コードには、完全な URI を構築するための追加情報が追加された HTTPS タイプの URL を使用するダイアログ ボックスがあり、Web サイトに移動して完全な小さなファイルを取得します。
int GetFile (HINTERNET hOpen, TCHAR * szURL, BYTE szTemp[4096])
{
DWORD dwSize;
TCHAR szHead[15];
HINTERNET hConnect;
szHead[0] = '\0';
szTemp[0] = 0;
// Opens a resource specified by a complete HTTP URL.
if ( !(hConnect = InternetOpenUrl( hOpen, szURL, szHead, 15, INTERNET_FLAG_DONT_CACHE, 0)))
{
DWORD dwlasterror = GetLastError();
if (dwlasterror == ERROR_INTERNET_NAME_NOT_RESOLVED) {
AfxMessageBox (_T("Error: ERROR_INTERNET_NAME_NOT_RESOLVED - check LAN connectivity."));
} else if (dwlasterror == ERROR_INTERNET_TIMEOUT) {
AfxMessageBox (_T("Error: ERROR_INTERNET_TIMEOUT - check LAN connectivity."));
} else if (dwlasterror == ERROR_INTERNET_SERVER_UNREACHABLE) {
AfxMessageBox (_T("Error: ERROR_INTERNET_SERVER_UNREACHABLE - check LAN connectivity."));
} else if (dwlasterror == ERROR_INTERNET_OPERATION_CANCELLED) {
AfxMessageBox (_T("Error: ERROR_INTERNET_OPERATION_CANCELLED - check LAN connectivity."));
} else {
CString msg;
msg.Format (_T("Error: GetLastError() returned %d."), dwlasterror);
AfxMessageBox (msg);
}
return -2;
}
// Reads data from a handle opened by the InternetOpenUrl, FtpOpenFile, or HttpOpenRequest function.
if (InternetReadFile (hConnect, szTemp, 4096, &dwSize) )
{
if (dwSize) {
return dwSize;
}
return -3;
}
return -4;
}
int DownloadURLImage (TCHAR * szURL, BYTE szTemp[4096])
{
int result = -1;
HINTERNET hInternet;
// Initializes an application's use of the WinINet functions.
hInternet= InternetOpen (_T("DeviceConfig"), INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, NULL);
if (hInternet) {
// if open succeeded then get the file and close the handle as we be done.
result = GetFile (hInternet, szURL, szTemp) ;
InternetCloseHandle(hInternet);
}
return result ;
}