读书人

疑惑。这个网页用idhttp打开居然不显示

发布时间: 2012-10-17 10:25:46 作者: rapoo

疑惑。这个网页用idhttp打开居然不显示网页内容?求助
http://taizhou.19lou.com/forum-804-thread-147601348048508030-1-1.html

上面这个网页用idhttp打开居然只显示几行java代码,请问是什么原因?是js输出?

以下是IDHTTP获得的内容,与实际网页相差很大,为什么?
<script language="javascript">

var url=document.location.href;
var s = url.indexOf("?");

var redirectUrl='';
var domain=document.domain.substr(document.domain.indexOf(".")+1);

if(s>0)
{
redirectUrl=url.substr(s+1);
SetCookie("_Z3nY0d4C_","37XgPK9h",365,"/",domain);
document.location.href=redirectUrl;

}
else
{

document.location.href="http://www."+domain;
}

function SetCookie (name, value) {
var expdate = new Date();
var argv = SetCookie.arguments;
var argc = SetCookie.arguments.length;
var expires = (argc > 2) ? argv[2] : null;
var path = (argc > 3) ? argv[3] : null;
var domain = (argc > 4) ? argv[4] : null;
var secure = (argc > 5) ? argv[5] : false;

if(expires!=null && expires>=0) expdate.setTime(expdate.getTime() + ( expires * 24*60*60*1000 ));

document.cookie = name + "=" + escape (value) +((expires == null || expires < 0) ? ((expires==-1)?"; expires=-1":"") : ("; expires="+ expdate.toGMTString()))
+((path == null) ? "" : ("; path=" + path)) +((domain == null) ? "" : ("; domain=" + domain))
+((secure == true) ? "; secure" : "");
}

</script>

[解决办法]
抽几分钟帮你试了下
关键就在cookie
js中这一行SetCookie("_Z3nY0d4C_","37XgPK9h",365,"/",domain);
第一次访问这页面,会判断上面这个cookie,如果错误就调用js设置这个cookie(但在idhttp中js是不会运行的),如果正确就给出正确页面内容。

帮你写了段代码,可以正常得到页面内容。

Delphi(Pascal) code
function GetStr(sStart,sEnd,InputStr:string):string;//截取字符串varpos1,pos2:Integer;begin  pos1:=PosEx(sStart,InputStr,1);  pos2:=PosEx(sEnd,InputStr,pos1+Length(sStart));  if (pos1>0) and (pos2>0) then    Result:=MidBStr(InputStr,pos1+Length(sStart),pos2-pos1-Length(sStart))  else    Result:='';end;procedure TForm1.Button1Click(Sender: TObject);varIdHTTP1:TIdHTTP;sHtml,sCookie,sCookieTmp:string;i:Integer;begin  IdHTTP1:=TIdHTTP.Create(nil);  try  IdHTTP1.Request.UserAgent:='Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)';  IdHTTP1.Request.Connection:='Keep-Alive';  IdHTTP1.Request.Referer:='http://taizhou.19lou.com/';  IdHTTP1.Request.Accept:='image/gif, image/jpeg, image/pjpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*';  IdHTTP1.Request.AcceptLanguage:='zh-cn';  IdHTTP1.ReadTimeout:=10000;  IdHTTP1.HandleRedirects:=True;  try    sHtml:=IdHTTP1.Get('http://taizhou.19lou.com/forum-804-thread-147601348048508030-1-1.html');  except  end;  finally    IdHTTP1.Free;  end;  //取得js设置的cookie  sCookie:=GetStr('SetCookie("','"',sHtml)+'='+GetStr('","','"',sHtml)+';';  IdHTTP1:=TIdHTTP.Create(nil);  try  IdHTTP1.Request.UserAgent:='Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)';  IdHTTP1.Request.Connection:='Keep-Alive';  IdHTTP1.Request.Referer:='http://taizhou.19lou.com/';  IdHTTP1.Request.Accept:='image/gif, image/jpeg, image/pjpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*';  IdHTTP1.Request.AcceptLanguage:='zh-cn';  IdHTTP1.ReadTimeout:=10000;  IdHTTP1.HandleRedirects:=True;  IdHTTP1.Request.SetHeaders;  IdHTTP1.Request.CustomHeaders.Add('Cookie: '+sCookie);  try//有了cookie后,再次访问    sHtml:=IdHTTP1.Get('http://taizhou.19lou.com/forum-804-thread-147601348048508030-1-1.html');  except  end;  finally    IdHTTP1.Free;  end;  Memo1.Lines.Add(sHtml);end; 

读书人网 >.NET

热点推荐