【vb.net】webからCSVファイルをダウンロードしたら中身がhtmlだった【TLS1.2】
こんばんにちございます。トランです。
何をわけのわからんタイトルを、を思われるかもしれませんが、、
↓のサイトを参考にさせていただきまして、
https://dobon.net/vb/dotnet/internet/webrequestsavefile.html
↓からCSVファイルをvb.netでダウンロードしようとしたんですね。
https://www8.cao.go.jp/chosei/shukujitsu/syukujitsu.csv
ダウンロード先のURLを変えて保存場所を指定すればCSVがダウンロードできると思ったらそうではなかった。。。中身がhtmlだったんですよ。
保存したファイルを覗いたらここ↓のソースがズラーッと並んでいたわけです。はい。
http://wwwa.cao.go.jp/notice/index.html
もうね、????ですよ。
CSV 中身 htmlとかいろいろググったんですけどわからなくって。。。。
デバッグ実行してみると、確かに上記からダウンロードしてるし、、、
なんかリダイレクトとかで誘導されてんのか?と思ってHttpWebRequestの
AllowAutoRedirectをfalseにしてもダメ。ダウンロードの方法が原因?と思ってHttpClientを使ってもダメ。
ってか何のサイトのソース?と思ってhtmlのサイトをみたら。。。
そのサイトには
”「TLS1.2」に対応できていないブラウザ、並びに、「TLS1.2」を有効に設定していない端末(パソコン、フューチャーフォン、スマートフォン、タブレット)等から、内閣府ウェブサイトに接続されたため、閲覧が出来ません。”なる記述がありました。
新たなキーワードTLS1.2が現れました。いろいろ調べて、ダウンロード処理の
webRequest作成時に↓の記述を追加してあげた。
ServicePointManager.SecurityProtocol = ServicePointManager.SecurityProtocol Or SecurityProtocolType.Tls12
これで.NET FrameworkでTLS1.2が有効化されるとのこと。
無事、CSVがダウンロードできました。めでたしめでたし
そんなわけで、おしまい