0

我目前正在尝试用 C# 开发一个网络爬虫,它将测试用户指定的页面是否存在。我希望一旦爬虫启动,它将页面状态写入 Windows 窗体(包括标签)。但是我无法让程序实际写入表单?

private void button1_Click(object sender, EventArgs e)
    {
        Uri fileURI = new Uri(URLbox.Text);
        WebRequest request = WebRequest.Create(fileURI);
        HttpWebResponse response = null;

        request.Method = "HEAD";
        bool exists = false;

        try
        {
            response = (HttpWebResponse)request.GetResponse();
            exists = response.StatusCode == HttpStatusCode.OK;

        }
        catch
        {
            exists = false;
        }
        finally
        {

            if (response != null)

                response.Close();
        }

    }
    private void label1_Click(object sender, EventArgs e)
    {
        Console.Write.ToString = ("Active");
    }

}

4

2 回答 2

1

您真正缺少的只是在最后设置标签文本。

private void button1_Click(object sender, EventArgs e)
{
    Uri fileURI = new Uri(URLbox.Text);
    WebRequest request = WebRequest.Create(fileURI);
    HttpWebResponse response = null;

    request.Method = "HEAD";
    bool exists = false;

    try
    {
        response = (HttpWebResponse)request.GetResponse();
        exists = response.StatusCode == HttpStatusCode.OK;

    }
    catch
    {
        exists = false;
    }
    finally
    {

        if (response != null)

            response.Close();
    }

    if(exists)
    {
        label1.Text = "Active";
    }

}
于 2015-11-25T20:23:33.197 回答
0

以下代码有效!

 public URLTester1()
    {
        InitializeComponent();
    }


    //Web Page Active?

    private void button1_Click(object sender, EventArgs e)
    {
        Uri fileURI = new Uri(URLbox1.Text);

        //tests http response 
        WebRequest request = WebRequest.Create(fileURI);
        HttpWebResponse response = null;

        request.Method = "HEAD";


        bool exists = false;

        try
        {
            response = (HttpWebResponse)request.GetResponse();
            exists = response.StatusCode == HttpStatusCode.OK;

        }
        catch
        {
            exists = false;
        }
        finally
        {
            // close your response.
            if (response != null)

                response.Close();
        }

        if (exists)
        {
            label1.Text = "Active";
        }
        else
        {
            label1.Text = "Inactive";
        }
于 2015-12-18T18:43:17.803 回答