C# - 获取初始页面的 HTTP 请求

标签 c# http get

我必须发送 HTTP 请求来获取初始页面,然后获取 HTTP 响应并检查它是否是 200 响应代码。所有这些都必须保存到 .csv 文件中,每个网站保存四次。 这就是我走了多远:

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace HTTPrequestApp
{
    class Program
    {
        static void Main(string[] args)
        {
            var lstWebSites = new List<string>
            {
                "www.mearstransportation.com",
                "www.amazon.com",
                "www.ebay.com",
                "www.att.com",
                "www.verizon.com",
                "www.sprint.com",
                "www.centurylink.com",
                "www.yahoo.com"
            };
            string filename = @"RequestLog.txt";
            {
                using (var writer = new StreamWriter(filename, true))
                {
                    foreach (string website in lstWebSites)
                    {
                        for (var i = 0; i < 4; i++)
                        {
                            MyWebRequest request = new MyWebRequest();
                            request.Request();
                        }
                    }
                }
            }
        }
    }
}

我仍然需要在我创建的另一个名为 MyWebRequest.cs 的类中执行 GET 请求 请帮助我。

最佳答案

在您的 MyWebRequest 类中执行以下操作(您还需要将网站 url 字符串传递给 MyWebRequest,但我将明确执行此操作):

    HttpWebResponse response = null;

    try
    {
        HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create("http://www.google.com/thisisadeadlink");
        request.Method = "GET";

        response = (HttpWebResponse)request.GetResponse();

        StreamReader sr = new StreamReader(response.GetResponseStream());
        Console.Write(sr.ReadToEnd());
    }
    catch (WebException e)
    {
        if (e.Status == WebExceptionStatus.ProtocolError)
        {
            response = (HttpWebResponse)e.Response;
            Console.Write("Errorcode: {0}", (int)response.StatusCode);
        }
        else
        {
            Console.Write("Error: {0}", e.Status);
        }
    }
    finally
    {
        if (response != null)
        {
            response.Close();
        }
    }

如果服务器失败并且response.StatusCode不是200,这应该捕获。

关于C# - 获取初始页面的 HTTP 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33325128/

相关文章:

HTTP:流水线、保持事件和服务器发送事件之间的关系是什么?

jquery - 使用 jquery 和 ajax 发送授权 header

android - 从 RecyclerView 检索数据

java - 在 Play Framework 中通过 GET 请求发送日期参数的理想方式是什么?

c# - 如何在.net中的Azure HttpTrigger函数(进程内函数应用程序)(Microsoft.NET.Sdk.Functions)中添加中间件

c# - 使用成员函数启动线程

C#后缀和前缀递增/递减重载区别

c# - 如何将所有者窗口传递给 Show() 方法重载?

java - 如何使用 cron 调度线程获取服务器 URL?

jquery - 在不使用 $.GET 的情况下在 HTML 中内联 SVG