C# 无法获取网页

C# 无法获取网页,c#,.net,http,get,C#,.net,Http,Get,我比.NET和C#中的“egg”更新,想测试我是否得到HTTP响应(GET)。由于在防火墙后面工作,我不确定问题是在代码还是安全方面 从中复制的代码 代码: 使用系统; 使用System.IO; Net系统; 使用系统文本; /// ///获取网页 /// 类WebFetch { 静态void Main(字符串[]参数) { //用于构建整个输入 StringBuilder sb=新的StringBuilder(); //用于每个读取操作 字节[]buf=新字节[8192]; //准备我们需

我比.NET和C#中的“egg”更新,想测试我是否得到HTTP响应(GET)。由于在防火墙后面工作,我不确定问题是在代码还是安全方面

从中复制的代码

代码:

使用系统;
使用System.IO;
Net系统;
使用系统文本;
/// 
///获取网页
/// 
类WebFetch
{
静态void Main(字符串[]参数)
{
//用于构建整个输入
StringBuilder sb=新的StringBuilder();
//用于每个读取操作
字节[]buf=新字节[8192];
//准备我们需要的网页
HttpWebRequest请求=(HttpWebRequest)
WebRequest.Create(“http://www.mayosoftware.com");
//执行请求
HttpWebResponse=(HttpWebResponse)
request.GetResponse();
//我们将通过响应流读取数据
Stream resStream=response.GetResponseStream();
字符串tempString=null;
整数计数=0;
做
{
//用数据填充缓冲区
count=resStream.Read(基本单位,0,基本单位长度);
//确保我们读了一些数据
如果(计数!=0)
{
//将字节转换为ASCII文本
tempString=Encoding.ASCII.GetString(buf,0,count);
//继续构建字符串
某人附加(临时字符串);
}
}
while(count>0);//还有数据要读取吗?
//打印输出页面源
Console.WriteLine(sb.ToString());
}
}
错误:

“/”应用程序中出现服务器错误。 分析程序错误说明:在分析 服务此请求所需的资源。请检查以下内容 特定解析错误详细信息并修改源文件 适当地

分析器错误消息:“WebApplication6.\u默认值”在此处不允许 因为它不扩展类“System.Web.UI.Page”

源错误:

第1行: 第3行:


任何关于如何解决这个问题的提示。noob非常喜欢这些“小步骤”。

您的代码似乎是一个控制台应用程序,一个编译成.EXE并可以从命令行运行的应用程序

但是,您的错误消息是ASP.NET应用程序的错误消息;设计用于在web服务器进程内运行的应用程序

您的问题不清楚您实际要构建哪种类型的应用程序。如果是前者,那么您需要做的就是使用Visual Studio或
csc.exe
将应用程序编译为可执行文件(可以通过右键单击项目、选择属性并将输出类型设置为可执行文件来完成),然后运行它。如果您在这里遇到问题,我建议您重新开始,在VisualStudio中创建一个新项目,这次选择“控制台应用程序”

如果您试图构建一个网页,那么您会遇到一些问题。首先,在您的页面指令中(
东西),您需要将
继承
属性设置为类的名称。例如,
WebFetch
。接下来,这个类需要从
System.Web.UI.Page
派生:

/// <summary>
/// Fetches a Web Page
/// </summary>
public class WebFetch : System.Web.UI.Page
{
  //...
}

我相信你的问题在于你使用了错误的项目类型。您看到的错误消息来自ASP.NET。您尝试使用的代码用于控制台应用程序

最简单的修复方法是启动一个新项目,并确保选择正确的项目类型(控制台应用程序)


如果你真的希望这是一个ASP.NET网站,你需要确保包含一个从System.Web.UI.page派生的页面。

等等,你是在构建控制台应用程序还是网页?@MikeChristensen只想获取网页内容的XML或JSON谢谢@Curtis。我在通过控制台应用程序输入时遇到以下错误“远程服务器返回错误:(407)需要代理身份验证”,这意味着您的代码工作正常,但web服务器本身或(更可能)您的防火墙返回HTTP 407错误。太棒了。非常感谢你的帮助。
/// <summary>
/// Fetches a Web Page
/// </summary>
public class WebFetch : System.Web.UI.Page
{
  //...
}
/// <summary>
/// Fetches a Web Page
/// </summary>
public class WebFetch : System.Web.UI.Page
{
   protected override void Render(HtmlTextWriter writer)
   {
      // All your code here

      writer.Write(sb.ToString());
   }
}