C# 来自API的iCal获得AirBnb退货”;远程服务器返回错误:(403)禁止“;ASP.NET
我想从提供AirBnb的iCal导入日期。 我正在开发ASP.NET MVC应用程序,其中包含一些名为iCal.NET的金块 守则:C# 来自API的iCal获得AirBnb退货”;远程服务器返回错误:(403)禁止“;ASP.NET,c#,asp.net,icalendar,C#,Asp.net,Icalendar,我想从提供AirBnb的iCal导入日期。 我正在开发ASP.NET MVC应用程序,其中包含一些名为iCal.NET的金块 守则: public ActionResult Index() { const string airbnbCalendar = "https://www.airbnb.com/calendar/ical/1111111.ics?s=zkdjhfkjsdzkhfkkjsadjkfhskjdfhjk"; Calendar calen
public ActionResult Index()
{
const string airbnbCalendar = "https://www.airbnb.com/calendar/ical/1111111.ics?s=zkdjhfkjsdzkhfkkjsadjkfhskjdfhjk";
Calendar calendar;
using (var client = new WebClient())
{
byte[] file = null;
file = client.DownloadData(airbnbCalendar);
Stream stream = new MemoryStream(file);
calendar = Calendar.Load(stream);
}
return View();
}
我在联机客户端上遇到错误。下载数据(airbnbCalendar):
远程服务器返回错误:(403)禁止
我在谷歌上搜索了一下,发现出于某种原因,我必须“模仿”网络浏览器来满足这个请求。这里是链接到
如何将请求转换为CURL请求?为了让airbnb给我正确的数据
另外,当我将airbnb url复制到浏览器时,会得到正确的.ics文件
出于安全原因,我更改了url地址。用户代理通过请求头传输。因此,向webclient添加一个适当的标题,如图所示。这是我特别添加的内容,它起到了作用:
webClient.Headers.Add("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)");
我添加了
request.UserAgent=“Mozilla/5.0(Windows NT 10.0;Win64;x64)AppleWebKit/537.36(KHTML,类似Gecko)Chrome/81.0.4044.138 Safari/537.36”代码>到myHttpWebRequest
对象,以便从AirBnb下载iCal数据