睢
睢志强
Unregistered / Unconfirmed
GUEST, unregistred user!
要求如下
1 API 编写,不用控件
2 获得后数据无乱码
我写了个函数,如下:
能获得代码,但是遇到那里边的汉字就出现乱码,而我用影音传送带 下来就正常。
我的代码获得别的站没问题,就那站出问题,求解。
测试地址
http://iii168.com/app/member/
我的函数获得的代码:
<td align="center">寤鸿?鎮ㄤ互 IE 6.0 1024*768 浠ヤ笂楂樺僵妯″紡鐎忚?鏈?珯&nbsp;&nbsp;<a href="http://www.microsoft.com/taiwan/products/ie/" target="_blank">绔嬪埢涓嬭級IE</a></td>
影音下来的文件,打开后的代码:
<td align="center">建議您以 IE 6.0 1024*768 以上高彩模式瀏覽本站&nbsp;&nbsp;<a href="http://www.microsoft.com/taiwan/products/ie/" target="_blank">立刻下載IE</a></td>
我的函数
function get(Server:String;Port:integer;Url,oldurl:String):String;
var
len,s:integer;
name:sockaddr_in;
heHostEnt;
buf:array[0..1023]of char;
str,data:String;
wsd:WSADATA;
begin
WSAStartup($101,wsd);
s:=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
he:=gethostbyname(PChar(Server));
if he=nil then
Raise Exception.Create('使用Sock连接异常或是指定服务器有误!');
FillChar(name,sizeof(name),0);
name.sin_family:=AF_INET;
name.sin_port:=htons(Port);
name.sin_addr.S_addr:=PDWORD(PDWORD(he.h_addr)^)^;
connect(s,name,sizeof(name));
str := 'GET /'+ Url +' HTTP/1.1'#13#10;
str := str + 'Referer: '+ oldurl + #13#10;
str := str + 'User-Agent: Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0; MyIE 3.01)'#13#10;
str := str + 'Host: ' + Server + #13#10;
str := str + 'Connection: Close'#13#10;
str := str + 'Cache-Control: no-cache'#13#10;
str := str + #13#10;
send(s,PChar(str)^,Length(str),0);
while true do
begin
len:=recv(s,buf,sizeof(buf),0);
if len<1 then
break;
SetString(str,buf,len);
data:=data+str;
end;
closesocket(s);
WSACleanup();
Result := data;
end;
1 API 编写,不用控件
2 获得后数据无乱码
我写了个函数,如下:
能获得代码,但是遇到那里边的汉字就出现乱码,而我用影音传送带 下来就正常。
我的代码获得别的站没问题,就那站出问题,求解。
测试地址
http://iii168.com/app/member/
我的函数获得的代码:
<td align="center">寤鸿?鎮ㄤ互 IE 6.0 1024*768 浠ヤ笂楂樺僵妯″紡鐎忚?鏈?珯&nbsp;&nbsp;<a href="http://www.microsoft.com/taiwan/products/ie/" target="_blank">绔嬪埢涓嬭級IE</a></td>
影音下来的文件,打开后的代码:
<td align="center">建議您以 IE 6.0 1024*768 以上高彩模式瀏覽本站&nbsp;&nbsp;<a href="http://www.microsoft.com/taiwan/products/ie/" target="_blank">立刻下載IE</a></td>
我的函数
function get(Server:String;Port:integer;Url,oldurl:String):String;
var
len,s:integer;
name:sockaddr_in;
heHostEnt;
buf:array[0..1023]of char;
str,data:String;
wsd:WSADATA;
begin
WSAStartup($101,wsd);
s:=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
he:=gethostbyname(PChar(Server));
if he=nil then
Raise Exception.Create('使用Sock连接异常或是指定服务器有误!');
FillChar(name,sizeof(name),0);
name.sin_family:=AF_INET;
name.sin_port:=htons(Port);
name.sin_addr.S_addr:=PDWORD(PDWORD(he.h_addr)^)^;
connect(s,name,sizeof(name));
str := 'GET /'+ Url +' HTTP/1.1'#13#10;
str := str + 'Referer: '+ oldurl + #13#10;
str := str + 'User-Agent: Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0; MyIE 3.01)'#13#10;
str := str + 'Host: ' + Server + #13#10;
str := str + 'Connection: Close'#13#10;
str := str + 'Cache-Control: no-cache'#13#10;
str := str + #13#10;
send(s,PChar(str)^,Length(str),0);
while true do
begin
len:=recv(s,buf,sizeof(buf),0);
if len<1 then
break;
SetString(str,buf,len);
data:=data+str;
end;
closesocket(s);
WSACleanup();
Result := data;
end;