来自weather.gov禁止的当前观察饲料(403)

Jim*_*ker 9 xml rss weather noaa

对于来自HTTPClient的所有请求,Weather.gov当前观察源突然开始失败,同样我发现互联网上许多使用AJAX来调用weather.gov的网站也都失败了.

所有调用weather.gov当前观察源的结果,例如http://w1.weather.gov/xml/current_obs/TAPA.xml,返回403.所述URL在浏览器中正确解析.

Jim*_*ker 18

联系weather.gov得到了非常快速的响应,其中包括:

访问weather.gov上的资源的应用程序现在需要在任何HTTP请求中提供User-Agent标头.没有用户代理的请求会自动被阻止.由于少数客户使用远远超出大多数人认为合理的资源,我们已实施此使用政策.

我们建议使用以下格式提供用户代理字符串:

ApplicationName/vX.Y(http://your.app.url/ ; contact.email@example.com)

这将唯一标识您的应用程序,并允许我们与您联系并与您合作,如果我们观察到可能导致阻止的异常应用程序行为.

如果您在确认应用程序正在发送正确的标题后仍有问题,请随时给我们发回电子邮件.

感谢您使用weather.gov.

=======

这是一段C#代码.关键是您需要创建请求对象,然后在进行调用之前向其附加自定义User-Agent字符串.

...
var request = new HttpRequestMessage(HttpMethod.Post, httpClient.BaseAddress.AbsoluteUri);
request.Headers.Add("User-Agent", "MyApplication/v1.0 (http://foo.bar.baz; foo@bar.baz)");
var httpResponse = httpClient.SendAsync(request).Result;
...
Run Code Online (Sandbox Code Playgroud)

希望这有助于人们.干杯