我不知道为什么这个.aspx给了我:...
下载广告,下载烦人。
我不知道出了什么问题。
我的代码:
<%@ Page Language="C#" %>
<script runat="server">
protected void Page_Load(object sender, EventArgs e)
{
var strURL = "http://www.google.com";
System.Net.WebResponse objResponse = default(System.Net.WebResponse);
System.Net.WebRequest objRequest = default(System.Net.WebRequest);
string result = null;
objRequest = System.Net.HttpWebRequest.Create(strURL);
objResponse = objRequest.GetResponse();
System.IO.StreamReader sr = new System.IO.StreamReader(objResponse.GetResponseStream());
result = sr.ReadToEnd();
//clean up StreamReader
sr.Close();
//WRITE OUTPUT
Response.ContentType = "application/html";
Response.Write(result);//""
Response.Flush();//""
}
</script>
我仍然不知道出了什么问题!
答案 0 :(得分:1)
您不能拥有“全局”代码,您必须将其封装在方法中。
类似的东西:
<%@ Page Language="C#" %>
<script runat="server">
protected void Page_Load( object sender, EventArgs e )
{
// Your code...
}
</script>
这会在加载页面期间执行您的代码。
(我没有检查你的代码是否有意义。这个谷歌对我来说有点奇怪......)
<强>更新强>
您还需要import您需要的命名空间,例如:对于WebResponse
:
<%@ Page Language="C#" %>
<%@ Import namespace="System.Net" %>
<script runat="server">
protected void Page_Load( object sender, EventArgs e )
{
// Your code...
}
</script>
对您使用的所有命名空间重复此<%@ Import...%>
指令。或者使用类的完全限定名称,包括命名空间,例如System.Net.WebResponse
。
第二次更新:
好的,这只是一个疯狂的猜测,要删除(其中一个?)逻辑错误:
而不是:
var strURL = context.Server.UrlDecode(context.Request["http://www.google.com"]);
写:
var strURL = "http://www.google.com";
并查看它是否更有效(根据您使用的评论this answer)。
第三次(最终?)更新:
如果这也无济于事,请尝试在Visual Studio(Express)中调试它并设置断点,逐步执行代码,检查变量等。Here is a short introduction to debugging。
答案 1 :(得分:0)
使用单个文件页模型有两个问题阻止您的代码工作。 page_load方法签名是错误的,上下文已经存在,它没有被传入。更新代码到这个:
<script runat="server">
protected void Page_Load(object sender, EventArgs e)
{
var strURL = "http://www.google.com";
System.Net.WebResponse objResponse = default(System.Net.WebResponse);
System.Net.WebRequest objRequest = default(System.Net.WebRequest);
string result = null;
objRequest = System.Net.HttpWebRequest.Create(strURL);
objResponse = objRequest.GetResponse();
System.IO.StreamReader sr = new System.IO.StreamReader(objResponse.GetResponseStream());
result = sr.ReadToEnd();
//clean up StreamReader
sr.Close();
//WRITE OUTPUT
Response.ContentType = "text/html";//remove context
Response.Write(result);//""
}
</script>