勉強会情報収集アプリを作ろうとしています。
今のことろマルチプラットフォーム展開を考えていて、.NET で捨てコードで情報収集を試しています。
■ 勉強会告知サービス
勉強会告知をサポートするサービスはそれぞれ API が用意されているので、これを利用させてもらって収集しようとしています。
■ 403 Forbidden
しかし、.NET のプログラムから取得しようとすると、403 が返っています。
同じクエリをブラウザから投げると正しく帰ってくるのに、です。
※一度ブラウザから投げたクエリはその後、プログラムからも成功するようになります。
■ 対策概要
次のサイトを参考に UserAgent を設定するといけました。
※PHP での例です。
http://blog.snowcait.info/2016/12/18/php-file_get_contents-403-forbidden/
■ .NET での実装
var http = new HttpClient(); http.DefaultRequestHeaders.Add("User-Agent", "iOS"); string json = await http.GetStringAsync("https://connpass.com/api/v1/event/?count=100&order=1&keyword=埼玉");
参考
これで、情報を取得することができました。