小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

InternetOpenUrl函數(shù) 的應(yīng)用

 aaie_ 2013-04-14

通過一個完整的FTP,Gopher或HTTP網(wǎng)址打開一個資源。

HINTERNET InternetOpenUrl (__in HINTERNET hInternet ,__in LPCTSTR lpszUrl ,__in LPCTSTR lpszHeaders ,__in DWORD值dwHeadersLength ,__in的DWORD dwFlags ,__in DWORD_PTR dwContext);

參數(shù)
hInternet
當(dāng)前的 Internet 會話句柄。句柄必須由前期的 InternetOpen 調(diào)用返回。
lpszUrl
一個空字符結(jié)束的字符串變量的指針,指定讀取的網(wǎng)址。只有以ftp:, gopher:, http:, 或者 https: 開頭的網(wǎng)址被支持。
lpszHeaders
一個空字符結(jié)束的字符串變量的指針,指定發(fā)送到HTTP服務(wù)器的頭信息。欲了解更多信息,請參閱HttpSendRequest函數(shù)里lpszHeaders參數(shù)的說明。
dwHeadersLength
額外的頭的大小,以TCHAR為單位。如果這個參數(shù)是-1L并且lpszHeaders不是NULL,lpszHeaders被假設(shè)為零終止( ASCIIZ ),而長度被自動計算。
dwFlags
此參數(shù)可為下列值之一。
數(shù)值 說明

INTERNET_FLAG_EXISTING_CONNECT
如果使用相同的必須屬性創(chuàng)建會話,會嘗試?yán)矛F(xiàn)有的InternetConnect對象。這只對FTP操作非常有用,因為FTP是唯一在同一會話中執(zhí)行多種操作的協(xié)議。WinINet API 為每個由InternetOpen產(chǎn)生的HINTERNET句柄緩沖一個單獨鏈接句柄。InternetOpenUrl使用此標(biāo)志的HTTP和FTP連接。


INTERNET_FLAG_HYPERLINK
當(dāng)決定何時從網(wǎng)絡(luò)重載時,如果服務(wù)器沒有返回 Expires time 和 LastModified,那么強制重載。

INTERNET_FLAG_IGNORE_CERT_CN_INVALID
停用檢查從服務(wù)器對必須的主機名稱返回的SSL/PCT-based證書。 WinINet函數(shù)使用簡單的比較匹配主機名稱和通配符的規(guī)則檢查證書。

INTERNET_FLAG_IGNORE_CERT_DATE_INVALID
停用檢查的SSL/PCT-based的證書的適當(dāng)?shù)挠行掌凇?

INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTP
禁用檢測這中特殊的重定向。當(dāng)使用此標(biāo)志, WinINet 透明允許從HTTPS到HTTP URL的重定向。

INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTPS
禁用檢測這中特殊的重定向。當(dāng)使用此標(biāo)志, WinINet 透明的允許的HTTP到HTTPS URL的重定向。

INTERNET_FLAG_KEEP_CONNECTION
如果可能的話,為連接使用?;钫Z義。這個標(biāo)志要求微軟網(wǎng)絡(luò)( MSN ),NTLM和其他類型的身份驗證。

INTERNET_FLAG_NEED_FILE
如果要創(chuàng)建的文件不能被緩存,創(chuàng)建臨時文件。

INTERNET_FLAG_NO_AUTH
不試圖自動驗證。

INTERNET_FLAG_NO_AUTO_REDIRECT
不自動處理HttpSendRequest中的重定向。

INTERNET_FLAG_NO_CACHE_WRITE
不添加返回實體到緩存。

INTERNET_FLAG_NO_COOKIES
不會自動添加的Cookie頭到請求,并且不自動添加返回的cookie到cookie數(shù)據(jù)庫。

INTERNET_FLAG_NO_UI
禁用Cookie的對話框。

INTERNET_FLAG_PASSIVE
使用被動FTP語義。InternetOpenUrl為FTP的文件和目錄使用此標(biāo)志。

INTERNET_FLAG_PRAGMA_NOCACHE
即使代理中存在緩存副本,也強制要求由源服務(wù)器返回。

INTERNET_FLAG_RAW_DATA
檢索的Gopher目錄信息時,傳回的數(shù)據(jù)作為GOPHER_FIND_DATA結(jié)構(gòu),如果檢索的FTP目錄信息時,作為一個WIN32_FIND_DATA結(jié)構(gòu)。如果此標(biāo)志沒有指定,或者請求通過CERN代理創(chuàng)建, InternetOpenUrl返回的HTML版本的目錄。

INTERNET_FLAG_RELOAD
從原服務(wù)器強制下載所要求的文件,對象,或目錄列表,而不是從緩存下載。

INTERNET_FLAG_RESYNCHRONIZE
重新加載的HTTP資源,如果資源在最后一次下載后已被修改。所有FTP和Gopher資源將被重載。

INTERNET_FLAG_SECURE
使用安全傳輸語義。這次傳輸使用安全套字節(jié)層/專用通信技術(shù)(的SSL / PCT ),這只有在HTTP請求時有意義。


dwContext
一個指向一個應(yīng)用程序定義的值,將隨著返回的句柄,一起傳遞給回調(diào)函數(shù)。

返回值
如果已成功建立到FTP,Gopher,或HTTP URL的連接,返回一個有效的句柄,如果連接失敗返回NULL。要檢索特定的錯誤訊息,使用GetLastError 函數(shù)。要確定為什么對服務(wù)器的訪問被拒絕,請調(diào)用InternetGetLastResponseInfo函數(shù)。

備注
先調(diào)用InternetCanonicalizeUrl,如果正在使用的網(wǎng)址包含一個相對URL和一個空格分隔的基礎(chǔ)URL。

這是一個通用的函數(shù),可用于使用任何WinINet支持的協(xié)議檢索數(shù)據(jù)。這個函數(shù)在應(yīng)用程序并不需要指定特定的協(xié)議,只需要相應(yīng)的URL的數(shù)據(jù)時,特別有用。InternetOpenUrl函數(shù)解析URL字符串,建立連接到服務(wù)器,并準(zhǔn)備下載的指定URL的數(shù)據(jù)。該應(yīng)用程序可以用InternetReadFile (對文件)或InternetFindNextFile (對目錄)來檢索URL的數(shù)據(jù)。沒有必要在InternetOpenUrl 前調(diào)用InternetConnect。

InternetOpenUrl在少于1024端口上禁用Gopher,除了70——標(biāo)準(zhǔn)的Gopher端口和105——通常用于中央服務(wù)組織(民間組織)的名字搜索。

在使用完InternetOpenUrl返回的HINTERNET句柄后,必須使用InternetCloseHandle函數(shù)關(guān)閉它。

注意 :當(dāng)工作在異步模式(InternetOpen的dwFlags參數(shù)指定INTERNET_FLAG_ASYNC)和dwContext參數(shù)是零 (INTERNET_NO_CALLBACK),使用InternetSetStatusCallback函數(shù)設(shè)置的回調(diào),將不被引用,但是,將仍然在異步模式執(zhí)行回調(diào)。
要求
客戶端
需要 Windows Vista, Windows XP, Windows 2000 Professional, Windows NT Workstation 4.0, Windows Me, Windows 98, 或者 Windows 95。

服務(wù)器-
需要 Windows Server 2008, Windows Server 2003, Windows 2000 Server, 或 Windows NT Server 4.0。

版本:
需要 Internet Explorer 3.0 或更高版本。


在 Wininet.h 中聲明。


使用 Wininet.lib 。

DLL
需要 Wininet.dll 。

Unicode
執(zhí)行InternetOpenUrlW(Unicode)和InternetOpenUrlA (ANSI) 的

下載文件的例子:

InternetOpenUrl函數(shù) 的應(yīng)用 - Langston - Langston的世界

DWORD dwTeread = 0;
CHAR szbuffer[100];
HINTERNET internetopen;

CString strUrl;

const CWnd* pUrlEdit = GetDlgItem(IDC_EDITURL);
assert(pUrlEdit);
pUrlEdit->GetWindowText(strUrl);

CString strFile;
const CWnd* pFileEdit = GetDlgItem(IDC_EDITFILE);
assert(pFileEdit);
pFileEdit->GetWindowText(strFile);

if(strUrl.IsEmpty() || strFile.IsEmpty())
{
AfxMessageBox("Url Or SaveFile Is Null!");
return;
}

memset(szbuffer, 0, sizeof(szbuffer));
internetopen=InternetOpen("DownFile", INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0);
if(NULL == internetopen)
{
AfxMessageBox("Internet open failed!");
return;
}

HINTERNET internetopenurl;
internetopenurl = InternetOpenUrl(internetopen, strUrl, NULL, 0, INTERNET_FLAG_RELOAD, 0);
if(NULL == internetopenurl)
{
AfxMessageBox("Internet open url failed!");
goto ERROR_URL;
}

BOOL bHwrite;
DWORD dwWritten;
HANDLE hCreatefile;
hCreatefile = CreateFile(strFile, GENERIC_WRITE, 0, 0, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0);
if(INVALID_HANDLE_VALUE == hCreatefile)
{
AfxMessageBox("Create File failed!");
goto ERROR_OPEN;
}

BOOL internetreadfile;
while(true)
{
internetreadfile = InternetReadFile(internetopenurl, szbuffer, sizeof(szbuffer), &dwTeread);
if(!dwTeread)
break;

bHwrite = WriteFile(hCreatefile, szbuffer, sizeof(szbuffer), &dwWritten, NULL);
if(!bHwrite)
{
AfxMessageBox("Write to file failed!");
goto ERROR_FILE;
}
}

AfxMessageBox("Finished Downloading!");

ERROR_FILE:
CloseHandle(hCreatefile);
ERROR_URL:
InternetCloseHandle(internetopenurl);
ERROR_OPEN:
InternetCloseHandle(internetopen);

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多