【Delphi】【問題】Wininet系列函數無法讀取本機以外的網站的内容長度 |
尚未結案
|
LexChou
一般會員 發表:1 回覆:2 積分:0 註冊:2005-07-12 發送簡訊給我 |
我看了網路上的一些代碼,並按照它們的寫法寫了如下代碼,測試本機IIS搭建的伺服器倒是成功了,但是對於其他一些地址,卻無法獲取網葉内容的長度,雖然無法獲取長度,但是卻可以通過InternetReadFile來讀取網葉内容。返回的錯誤代碼12150 (對應的常量為ERROR_HTTP_HEADER_NOT_FOUND) 請大大幫忙解除困惑,謝謝了 代碼如下:
var hSession:HINTERNET; hConnection:HINTERNET; hHTTP:HINTERNET; ContentSize:array[1..1024] of char; dwSize:DWORD; dwIndex:DWORD; begin hSession:=InternetOpen('Mozilla/4.0 (compatible; MSIE 6.0; Win32)',INTERNET_OPEN_TYPE_PRECONFIG,nil,nil,0); hConnection:=InternetConnect(hSession,'www.google.com' ,INTERNET_INVALID_PORT_NUMBER,nil,nil,INTERNET_SERVICE_HTTP,0,0); hHTTP:=HttpOpenRequest(hConnection,'GET','/',HTTP_VERSION,'',nil,INTERNET_FLAG_RELOAD or INTERNET_FLAG_NO_CACHE_WRITE ,0); if HttpSendRequest(hHTTP,nil,0,nil,0) then begin dwSize:=sizeof(ContentSize);dwIndex:=0; if HttpQueryInfo(hHTTP,HTTP_QUERY_CONTENT_LENGTH,@ContentSize,dwSize,dwIndex) then begin ShowMessageFmt('Content Size=%s',[StrPas(@ContentSize)]); end else ShowMessageFmt('Error=%d',[GetLastError]); end; InternetCloseHandle(hHTTP); InternetCloseHandle(hConnection); InternetCloseHandle(hSession); end;The fullmoon was calling, thou could not sleep Nor find peace in thy grave, thy keep
------
The fullmoon was calling, thou could not sleep Nor find peace in thy grave, thy keep |
LexChou
一般會員 發表:1 回覆:2 積分:0 註冊:2005-07-12 發送簡訊給我 |
似乎看到問題所在了,原來是Web伺服器在傳回來的Header中並沒有加入Content-Length IIS好像都能返回Content-Length 那對於沒有返回Content-Length,一些下載軟件是怎麽得到大小的呢? The fullmoon was calling, thou could not sleep Nor find peace in thy grave, thy keep
------
The fullmoon was calling, thou could not sleep Nor find peace in thy grave, thy keep |
Ktop_Robot
站務副站長 發表:0 回覆:3511 積分:0 註冊:2007-04-17 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |