dotnet core中的httpwebrequest返回404错误

问题描述 投票:-3回答:1

我是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找不到的错误。更奇怪的是跟随(另一个)代码在一个控制台项目中使用C#和dotnet Core 2.1框架为沃尔玛工作。当我将其导入主项目时,它再次返回404错误。

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

我已经使用了通过fiddler和cookies容器找到的所有标题。但没有运气。我无法理解问题所在。

PS:我曾尝试使用上面的一些代码拒绝使用另一个(一些随机的)市场网址,这对我来说很有用。但沃尔玛没有运气。

c# .net-core httpwebrequest scraper
1个回答
0
投票

只是为那些陷入相同或类似问题的人提供信息。我的沃尔玛网址不对。我通过将URL分成像权限,查询字符串等部分然后将其组合回来来检查URL。在组合添加期间,“/”在URL的末尾添加,它变为无效。所以,删除它就可以了。

© www.soinside.com 2019 - 2024. All rights reserved.