如何使 RestSharp 请求像浏览器请求一样?
How make RestSharp request like a browser request?
奇怪的是我注意到必须分享的页面 public API (https://danepubliczne.imgw.pl/api/data/hydro/), 似乎阻止了 RestSharp 请求但同时 URL在浏览器上 return 结果或多或少是正确的...没有一种模式可以阻止请求,我不确定这是否是故意的。尽管如此,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 浏览器最新版本的示例请求?
您需要在请求中添加 headers。看来至少需要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");
奇怪的是我注意到必须分享的页面 public API (https://danepubliczne.imgw.pl/api/data/hydro/), 似乎阻止了 RestSharp 请求但同时 URL在浏览器上 return 结果或多或少是正确的...没有一种模式可以阻止请求,我不确定这是否是故意的。尽管如此,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 浏览器最新版本的示例请求?
您需要在请求中添加 headers。看来至少需要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");