C# 当页面存在时,HttpWebResponse返回404错误

C# 当页面存在时,HttpWebResponse返回404错误,c#,httprequest,C#,Httprequest,我正在尝试编写一个小型桌面应用程序,通过API监控网站。我从来没有对API或WebRequests做过太多的工作,所以我不确定如何处理这个错误。生成请求后,我尝试从页面获取响应,但这会返回404错误,即使我在浏览器中导航到相同的URL也可以正常工作。我不知道如何解决这个问题,我对有同样问题的人所做的研究也没有帮助我理解这个问题。有人能向我解释一下在基本层面上发生了什么吗?我的代码已发布在下面: private void Window_Loaded(object sender, RoutedEve

我正在尝试编写一个小型桌面应用程序,通过API监控网站。我从来没有对API或WebRequests做过太多的工作,所以我不确定如何处理这个错误。生成请求后,我尝试从页面获取响应,但这会返回404错误,即使我在浏览器中导航到相同的URL也可以正常工作。我不知道如何解决这个问题,我对有同样问题的人所做的研究也没有帮助我理解这个问题。有人能向我解释一下在基本层面上发生了什么吗?我的代码已发布在下面:

private void Window_Loaded(object sender, RoutedEventArgs e)
    {
        string sURL;
        sURL = @"https://habitrpg.com/api/v1/user";

        HttpWebRequest request = (HttpWebRequest)WebRequest.Create(sURL);

        HttpWebResponse response = null;
        try
        {
            response = (HttpWebResponse)request.GetResponse();
        }
        catch (Exception ex)
        {
            resultText.Text = "Oh no!";
        }
        Stream receiveStream = response.GetResponseStream();
        StreamReader readStream = new StreamReader(receiveStream, Encoding.UTF8);
        string responseData = readStream.ReadToEnd();
    }

您应该忽略https证书,看看这个问题:


我遇到了错误401,你确定得到的是404吗?是的,如果我在代码运行时单步执行代码,异常会说这是404错误。我尝试添加了该问题所涉及的行,但仍然得到了404错误。我所要做的就是添加ServicePointManager行,并定义他定义的布尔值,对吗?@SeanCogan这是下一步,如果你得到404,这意味着:无效的url、无效的参数或某些头也可能是无效的。使用浏览器检查差异的最简单方法是
Fiddler
。允许
https
流量,并在浏览器和程序中发出请求。