dotnet核心中的httpwebrequest返回404错误

时间:2019-02-19 17:27:49

标签: c# .net-core httpwebrequest scraper

我是dotnet-core的新手。 我正在做一些报废的请求代码。我以前在AliExpress上进行的练习对我来说适用于相同模式 现在,我被沃尔玛的请求所困扰

当我在任何其他网站上使用以下代码时,它会返回OK响应和所需的数据。

 HttpWebRequest wRequest = (HttpWebRequest) WebRequest.Create(url);
            // wRequest.Timeout = 10000
            wRequest.UserAgent = "Mozilla/ 5.0(Windows NT 6.1; WOW64) AppleWebKit/535.2 (KHTML, Like Gecko) Chrome/15.0.874.121 Safari/535.2";


            using (HttpWebResponse httpResponse = (HttpWebResponse)wRequest.GetResponse())
            {
                if (httpResponse.StatusCode == HttpStatusCode.OK)
                {
                    System.IO.StreamReader sr = new System.IO.StreamReader(httpResponse.GetResponseStream());

                   var responseString= sr.ReadToEnd();
                    Debug.Write(responseString);
                }
            }

       }

但是当我用沃尔玛做时,它返回我404 not found错误。 更奇怪的是,在一个控制台项目中,通过C#和dotnet Core 2.1框架在Walmart上为我工作的(另一)代码。 当我将其导入主项目时,它再次返回404错误。

WebClient wReq = new WebClinet();    
HtmlAgilityPack.HtmlDocument document = new HtmlAgilityPack.HtmlDocument();
document.LoadHtml(wReq.DownloadString(URL));

我甚至都使用了通过提琴手和cookie容器找到的所有标头。但是没有运气。我不明白问题是什么。

PS::我尝试使用上面的某些代码,该代码拒绝沃尔玛使用对我有用的另一个(某些随机的)市场URL。但是沃尔玛运气不好。

1 个答案:

答案 0 :(得分:0)

仅供参考,以供遇到相同或相似问题的任何人参考。 我给沃尔玛的网址不正确。 我正在通过将URL划分为Authority,query string等部分来检查URL。 然后将其合并回去。 在组合添加过程中,URL末尾添加了“ /”,并且无效。 因此,删除该功能就可以了。