Web代理(Asp版)_ASP教程-查字典教程网
Web代理(Asp版)
Web代理(Asp版)
发布时间:2016-12-29 来源:查字典编辑
摘要:asp写Web代理软件,可以用作突破网关限制等,主要是为了配合Ajax使用的(因Firefox存在跨域访问的问题)版本0.1作者LlinZz...

asp写Web代理软件,可以用作突破网关限制等,主要是为了配合Ajax使用的(因Firefox存在跨域访问的问题) 版本0.1 作者LlinZzi

功能

判断网站编码,支持任何语言

超连接自动转换

附带一个远程下载图片的函数

未解决问题,目前只能用来代理网站代码,图片等其他数据的代理转发尚未完成。

复制代码 代码如下:

<%@LANGUAGE="JAVASCRIPT"CODEPAGE="65001"%>

<%Response.Charset="utf-8"%>

<%

Server.ScriptTimeout=9999999;

varSurl=String(Request.QueryString("url"));

if(Surl=="undefined"){

Response.Write("<p>Asp代理byLlinzzi</p>");

Response.Write("<div>");

Response.Write("<formaction="#"method="get">");

Response.Write("<p>请输入网址</p>");

Response.Write("<p><inputtype="text"name="url"></p>");

Response.Write("<p><inputtype="submit"value="GoWeb"></p>");

Response.Write("</div>");

}

elseif(Surl==""){

Response.Write("<p>Asp代理byLlinzzi</p>");

Response.Write("<div>");

Response.Write("<p>地址为空,请格式输入如www.tom.com</p>");

Response.Write("</div>");

}

else{

Surl=(Surl.substr(0,7)!="http://")?"http://"+Surl:Surl;

Response.Write(send_request(Surl));

}

functionsend_request(url){

varcodedtext;

http_request=Server.CreateObject("Microsoft.XMLHTTP");

try{

http_request.Open("GET",url,false);

http_request.Send(null);

}

catch(e)

{

Response.Write(e.description);

}

if(http_request.ReadyState==4){

//自动判断编码开始

varcharresult=http_request.ResponseText.match(/CharSet=(S+)"/i);

if(charresult!=null){

varCset=charresult[1];

}else{Cset="utf-8"}

//自动判断编码结束

codedtext=bytesToBSTR(http_request.Responsebody,Cset);

}else{

codedtext="Erro";

}

//替换超连接

codedtext=codedtext.replace(/href="/?/ig,"href=""+url+"/");

codedtext=codedtext.replace(/(<a.*href=")/ig,"$1servergate.asp?url=");

return(codedtext);

}

functionbytesToBSTR(body,Cset){

varobjstream;

objstream=Server.CreateObject("Adodb.Stream");

objstream.Type=1;

objstream.Mode=3;

objstream.Open();

objstream.Write(body);

objstream.Position=0;

objstream.Type=2;

objstream.Charset=Cset;

bytesToBSTR=objstream.Readtext;

objstream.Close;

return(bytesToBSTR);

}

functionSaveRemoteFile(LocalFileName,RemoteFileUrl){

varRetrieval,Ads;

Retrieval=Server.CreateObject("Microsoft.XMLHTTP");

Retrieval.Open("GET",RemoteFileUrl,false);

Retrieval.Send(null);

if(Retrieval.ReadyState==4){

Ads=Server.CreateObject("Adodb.Stream");

Ads.Type=1;

Ads.Open();

Ads.Write(Retrieval.Responsebody);

Ads.SaveToFile(Server.MapPath(LocalFileName),2);

Ads.Cancel;

Ads.Close;

}

}

//SaveRemoteFile("aa.gif","http://www.baidu.com/img/logo.gif");

%>

相关阅读
推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  • 最新ASP教程学习
    热门ASP教程学习
    编程开发子分类