首页 > 解决方案 > RestClient 有效,但 HttpWebRequest 无效

问题描述

此代码有效:

 var source = "https://jade.io/xml/au-qld-dc.xml";
        
 var client = new RestClient(source);
 var request = new RestRequest(Method.GET);
 IRestResponse resp = client.Execute(request);
 Console.WriteLine(resp.Content);

xml 被检索并显示在控制台中。但是这段代码不起作用:

HttpWebRequest httpsRequest = (HttpWebRequest) WebRequest.Create(source);
httpsRequest.Method = "GET";
var response = httpsRequest.GetResponse();

它会引发 403(禁止)错误...

我想知道为什么它不起作用,因为我有一些使用 WebRequest 的遗留代码,并且在用 RestClient 替换所有代码之前,如果有一个简单的修复......

标签: c#webrequest

解决方案


添加 UserAgent 标头,它将起作用。

var source = "https://jade.io/xml/au-qld-dc.xml";
HttpWebRequest httpsRequest = (HttpWebRequest)WebRequest.Create(source);
httpsRequest.Method = "GET";
httpsRequest.UserAgent = "Test";
var response = httpsRequest.GetResponse();

推荐阅读