c# - 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 替换所有代码之前,如果有一个简单的修复......
解决方案
添加 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();
推荐阅读
- javascript - 在已部署的 heroku 节点应用程序上创建 child_process
- node.js - 使用云功能 onCreate 从 Firebase Firestore 中 onCreate 内部的集合/文档中检索数据
- flutter - HTTP GET 请求结果放入数组
- angular - 如何使用 Jasmine /Karma 在 Angular 单元测试中测试 If Else 块
- awk - 如何仅将某些空白列转换为制表符?
- r - 无法在 R Shiny 中重现 selectizeUpdate 的最小示例
- javascript - 计算 JavaScript 数组中最小值和最大值之间元素的总和
- css - Android Chrome 无法重复很长的背景图片
- javascript - Javascript添加点击事件以输入提交字段
- c - str[][20]是什么意思