使用wininet的函数HttpQueryInfo来获取HTTP头信息
HttpQueryInfo定义如下:
function HttpQueryInfo(hRequest: HINTERNET; dwInfoLevel: DWORD;
lpvBuffer: Pointer; var lpdwBufferLength: DWORD;
var lpdwReserved: DWORD): BOOL; stdcall;
时,只有HTTP_QUERY_CONTENT_TYPE 、HTTP_QUERY_DATE、HTTP_QUERY_STATUS_CODE、HTTP_QUERY_RAW_HEADERS_CRLF和其他少数几个参数能使用。且使用用于获取全部HTTP头信息的HTTP_QUERY_RAW_HEADERS_CRLF时,获取的头信息不完整。使用用于获取头信息中的COOKIES的HTTP_QUERY_SET_COOKIE,也经常执行失败或获取不完整。求解。应用代码如下
var
url:string;
Session, HttpFile:HINTERNET;
szSizeBuffer:Pointer;
dwLengthSizeBuffer:DWord;
dwReserved:DWord;
dwFileSize:DWord;
dwBytesRead:DWord;
success:longbool;
begin
url:=trim(memo1.Lines.Text); Session:=InternetOpen('',0,niL,niL,0);
HttpFile:=InternetOpenUrl(Session,PChar(Url),niL,0,0,0);
dwLengthSizeBuffer:=1024*1024;
GetMem(szSizeBuffer,dwLengthSizeBuffer);
level:=HTTP_QUERY_SET_COOKIE; //取COOKIES
success:=HttpQueryInfo(HttpFile,level,szSizeBuffer,dwLengthSizeBuffer,dwReserved);
memo2.Lines.Append('执行状态:'+booltostr(success));
memo3.Lines.Append('头信息:'+pchar(szSizeBuffer));
FreeMem(szSizeBuffer); InternetCloseHandle(HttpFile);
InternetCloseHandle(Session);
HttpQueryInfo定义如下:
function HttpQueryInfo(hRequest: HINTERNET; dwInfoLevel: DWORD;
lpvBuffer: Pointer; var lpdwBufferLength: DWORD;
var lpdwReserved: DWORD): BOOL; stdcall;
时,只有HTTP_QUERY_CONTENT_TYPE 、HTTP_QUERY_DATE、HTTP_QUERY_STATUS_CODE、HTTP_QUERY_RAW_HEADERS_CRLF和其他少数几个参数能使用。且使用用于获取全部HTTP头信息的HTTP_QUERY_RAW_HEADERS_CRLF时,获取的头信息不完整。使用用于获取头信息中的COOKIES的HTTP_QUERY_SET_COOKIE,也经常执行失败或获取不完整。求解。应用代码如下
var
url:string;
Session, HttpFile:HINTERNET;
szSizeBuffer:Pointer;
dwLengthSizeBuffer:DWord;
dwReserved:DWord;
dwFileSize:DWord;
dwBytesRead:DWord;
success:longbool;
begin
url:=trim(memo1.Lines.Text); Session:=InternetOpen('',0,niL,niL,0);
HttpFile:=InternetOpenUrl(Session,PChar(Url),niL,0,0,0);
dwLengthSizeBuffer:=1024*1024;
GetMem(szSizeBuffer,dwLengthSizeBuffer);
level:=HTTP_QUERY_SET_COOKIE; //取COOKIES
success:=HttpQueryInfo(HttpFile,level,szSizeBuffer,dwLengthSizeBuffer,dwReserved);
memo2.Lines.Append('执行状态:'+booltostr(success));
memo3.Lines.Append('头信息:'+pchar(szSizeBuffer));
FreeMem(szSizeBuffer); InternetCloseHandle(HttpFile);
InternetCloseHandle(Session);
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货