首页 > 解决方案 > 如何让 RestSharp 请求像浏览器请求一样?

问题描述

令人惊讶的是,我注意到有义务共享公共 API 的页面(https://danepubliczne.imgw.pl/api/data/hydro/)似乎阻止了 RestSharp 请求,但同时浏览器上的 URL 返回结果更多或者不太正确......没有一种模式可以阻止请求,我不知道这是否是故意的。尽管如此,Resharp 请求还是经常失败。请求以超时或 500 秒错误之一结束。同时,chrome浏览器的请求在大多数情况下都能正常工作。下面是用于从该服务获取响应的代码

RestClient client;
RestRequest request;
client = new RestClient("https://danepubliczne.imgw.pl/api/data/hydro/");
request = new RestRequest(Method.GET);
request.AddHeader("Accept", "*/*");
response = client.Execute(request);

那么您能否向我推荐如何使 Restsharp 请求看起来像来自最新版本的 chrome 浏览器的请求?

标签: c#restrestsharp

解决方案


您需要在请求中添加标头。似乎至少User-Agent是必需的。尝试这样的事情:

var request = new RestRequest(...);
...
request.AddHeader("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Safari/537.36");

推荐阅读