C#で System.NetのDnsクラスを使って、web上にある、アクセスすると応答してくれるサーバーがあり、
指定したURLにアクセスして応答を受けとるプログラムを組みたいのですが
いろいろ調べても、どうやったらいいのか全然わからなく困っています。
どなたかわかる方がいたら教えてくれるとうれしいです。
C#のDnsクラスを使ってwebサーバにアクセスしたい
Re: C#のDnsクラスを使ってwebサーバにアクセスしたい
えーっと,System.Net.Dnsは,MSDNにあるように,
URIのホスト部を実際に接続するためのIPアドレスに変換するための機能 (やその逆変換機能) は持っていますが,URIを指定するとそのスキームに依存した接続を行うような機能はもっていません。
さらに,名前解決を行うといっても,システムの解決機能を呼び出すためのものであり,DNSサーバーを指定して解決するような機能も持っていません。
現状の情報からであると,
スキームが特定されていれば,System.Net.Http.HttpClientクラスなど,もっと特化したクラスを提示できるかもしれませんが。
というクラスです。単純なドメイン名解決機能を提供します。
URIのホスト部を実際に接続するためのIPアドレスに変換するための機能 (やその逆変換機能) は持っていますが,URIを指定するとそのスキームに依存した接続を行うような機能はもっていません。
さらに,名前解決を行うといっても,システムの解決機能を呼び出すためのものであり,DNSサーバーを指定して解決するような機能も持っていません。
現状の情報からであると,
- URIにfile以外のスキームが使われているのであればSystem.Net.Sockets.Socketクラス
- fileスキームであるならばSystem.IO名前空間の各クラス
スキームが特定されていれば,System.Net.Http.HttpClientクラスなど,もっと特化したクラスを提示できるかもしれませんが。
Re: C#のDnsクラスを使ってwebサーバにアクセスしたい
これらはどこを見たら判断できるのでしょうか、YuO さんが書きました:URIにfile以外のスキームが使われているのであればSystem.Net.Sockets.Socketクラス
fileスキームであるならばSystem.IO名前空間の各クラス
教えていただけると幸いです
あと、自分の開発環境では .NetFreamwork 4.5が使えないので System.Net.Http.HttpClirentが使えないのです
Re: C#のDnsクラスを使ってwebサーバにアクセスしたい
URIの先頭から,最初の:の直前までがスキームです。gari さんが書きました:これらはどこを見たら判断できるのでしょうか、YuO さんが書きました:URIにfile以外のスキームが使われているのであればSystem.Net.Sockets.Socketクラス
fileスキームであるならばSystem.IO名前空間の各クラス
ref) URI Generic Syntax 3. Syntax Components
「など」です。gari さんが書きました:あと、自分の開発環境では .NetFreamwork 4.5が使えないので System.Net.Http.HttpClirentが使えないのです
そもそも,HTTPでないプロトコルを指定するようなスキーム (e.g. mailto,ftp) ではHttpClientは使えないですし,
URIにhttpスキームが指定されていても,例えばSystem.Net.HttpWebRequestクラスなどは.NET Framework 1.0からサポートされています。
また,HttpClient自体はNuGetで提供されていますから,.NET Framework 4.0以上の環境,Visual Studio 2010以降において利用可能です。
Re: C#のDnsクラスを使ってwebサーバにアクセスしたい
たとえばgoogleの https://www.google.com なら「https」がスキームということでいいのでしょうか。YuO さんが書きました:URIの先頭から,最初の:の直前までがスキームです。gari さんが書きました:これらはどこを見たら判断できるのでしょうか、YuO さんが書きました:URIにfile以外のスキームが使われているのであればSystem.Net.Sockets.Socketクラス
fileスキームであるならばSystem.IO名前空間の各クラス
ref) URI Generic Syntax 3. Syntax Components
そうであれば、私がアクセスしたいのはhttpスキームです。
NuGetですか、初めて聞きました。調べてみたいと思います。YuO さんが書きました:また,HttpClient自体はNuGetで提供されていますから,.NET Framework 4.0以上の環境,Visual Studio 2010以降において利用可能です。
System.Net.HttpWebRequestクラスも調べてみます