无法获取网页

本文关键字:网页 获取 | 更新日期: 2023-09-27 18:20:42

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

从中复制的代码http://www.csharp-station.com/howto/httpwebfetch.aspx

代码:

using System;
using System.IO;
using System.Net;
using System.Text;

/// <summary>
/// Fetches a Web Page
/// </summary>
class WebFetch
{
    static void Main(string[] args)
    {
        // used to build entire input
        StringBuilder sb = new StringBuilder();
        // used on each read operation
        byte[] buf = new byte[8192];
        // prepare the web page we will be asking for
        HttpWebRequest request = (HttpWebRequest)
            WebRequest.Create("http://www.mayosoftware.com");
        // execute the request
        HttpWebResponse response = (HttpWebResponse)
            request.GetResponse();
        // we will read data via the response stream
        Stream resStream = response.GetResponseStream();
        string tempString = null;
        int count = 0;
        do
        {
            // fill the buffer with data
            count = resStream.Read(buf, 0, buf.Length);
            // make sure we read some data
            if (count != 0)
            {
                // translate from bytes to ASCII text
                tempString = Encoding.ASCII.GetString(buf, 0, count);
                // continue building the string
                sb.Append(tempString);
            }
        }
        while (count > 0); // any more data to read?
        // print out page source
        Console.WriteLine(sb.ToString());
    }
}

错误:

"/"应用程序中的服务器错误

分析器错误描述:在分析服务此请求所需的资源。请查看以下内容特定的解析错误详细信息并修改源文件适当地。

分析器错误消息:此处不允许使用"WebApplication6._Default"因为它没有扩展类"System.Web.UI.Page".

来源错误:

第1行:<%@页面标题="主页"语言="C#"MasterPageFile="~/Site.master"AutoEventWireup="true"第2行:
CodeBehind="Default.aspx。cs"Inherits="WebApplication6._Default"%>第3行:

关于如何解决这个问题的任何提示。非常noob所以会非常欣赏"婴儿步"。

无法获取网页

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

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

如果您确实希望它是一个ASP.NET网站,则需要确保包含一个从System.Web.UI.page.

派生的页面

您的代码似乎是控制台应用程序的代码,该应用程序编译为.EXE,可以从命令行运行。

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

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

如果你正在尝试建立一个网页,那么你会遇到一些问题。首先,在页面指令(<%@ Page ... %>)中,您需要将Inherits属性设置为类的名称。例如,WebFetch。接下来,这个类需要从System.Web.UI.Page:派生

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

如果您这样做,您可能应该覆盖Render()方法并直接写入输出流:

/// <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());
   }
}