WinINet 下载时有不规则停顿!1.它呢是死循环下载的,可能下了几遍后就停一下,再接着下,停的时间也不是很长!这个我有专门的时间计算!2.如果同时开多个线程下载,它下载一遍所用的时间就是成倍上涨!(有的机器所用的时间就是成倍上涨,有的没有这种情况)不知道是不是要优化一下 WinInet 还有我的代码!我贴一下我下载所有的共公 Function:function SendRequest(Request: HINTERNET; Header: String; Params: String):String;
var
b: Boolean;
dwBytesRead: DWORD;
ss: TStringStream;
_DATA_: Array[0..1023] of Char;
begin
if Request = nil then begin
Result := 'Request 为 Null';
Exit;
end;
Result := '';
b := HttpSendRequest(Request,PChar(Header),Length(Header),PChar(Params),Length(Params));
if b then begin
ss := TStringStream.Create('');
while True do begin
if not InternetReadFile(Request, @_DATA_, SizeOf(_DATA_), dwBytesRead) then begin
Break;
end else if dwBytesRead = 0 then begin
Break;
end else begin
ss.WriteBuffer(_DATA_,dwBytesRead);
end;
end;
Result := ss.DataString;
ss.Free;
ss := nil;
end else begin
Result := 'HttpSendRequest 出错!';
end;
finalize(_DATA_);
end;
var
b: Boolean;
dwBytesRead: DWORD;
ss: TStringStream;
_DATA_: Array[0..1023] of Char;
begin
if Request = nil then begin
Result := 'Request 为 Null';
Exit;
end;
Result := '';
b := HttpSendRequest(Request,PChar(Header),Length(Header),PChar(Params),Length(Params));
if b then begin
ss := TStringStream.Create('');
while True do begin
if not InternetReadFile(Request, @_DATA_, SizeOf(_DATA_), dwBytesRead) then begin
Break;
end else if dwBytesRead = 0 then begin
Break;
end else begin
ss.WriteBuffer(_DATA_,dwBytesRead);
end;
end;
Result := ss.DataString;
ss.Free;
ss := nil;
end else begin
Result := 'HttpSendRequest 出错!';
end;
finalize(_DATA_);
end;
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货