C# 无法获取网页
我比.NET和C#中的“egg”更新,想测试我是否得到HTTP响应(GET)。由于在防火墙后面工作,我不确定问题是在代码还是安全方面 从中复制的代码 代码: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]; //准备我们需
使用系统;
使用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());
}
}