ページ 11

C#のDnsクラスを使ってwebサーバにアクセスしたい

Posted: 2014年10月06日(月) 14:24
by gari
C#で System.NetのDnsクラスを使って、web上にある、アクセスすると応答してくれるサーバーがあり、
指定したURLにアクセスして応答を受けとるプログラムを組みたいのですが
いろいろ調べても、どうやったらいいのか全然わからなく困っています。

どなたかわかる方がいたら教えてくれるとうれしいです。

Re: C#のDnsクラスを使ってwebサーバにアクセスしたい

Posted: 2014年10月06日(月) 22:28
by YuO
えーっと,System.Net.Dnsは,MSDNにあるように,
単純なドメイン名解決機能を提供します。
というクラスです。
URIのホスト部を実際に接続するためのIPアドレスに変換するための機能 (やその逆変換機能) は持っていますが,URIを指定するとそのスキームに依存した接続を行うような機能はもっていません。
さらに,名前解決を行うといっても,システムの解決機能を呼び出すためのものであり,DNSサーバーを指定して解決するような機能も持っていません。

現状の情報からであると,
  • URIにfile以外のスキームが使われているのであればSystem.Net.Sockets.Socketクラス
  • fileスキームであるならばSystem.IO名前空間の各クラス
を,それぞれ使うことになると思います。

スキームが特定されていれば,System.Net.Http.HttpClientクラスなど,もっと特化したクラスを提示できるかもしれませんが。

Re: C#のDnsクラスを使ってwebサーバにアクセスしたい

Posted: 2014年10月07日(火) 01:22
by gari
YuO さんが書きました:URIにfile以外のスキームが使われているのであればSystem.Net.Sockets.Socketクラス
fileスキームであるならばSystem.IO名前空間の各クラス
これらはどこを見たら判断できるのでしょうか、
教えていただけると幸いです

あと、自分の開発環境では .NetFreamwork 4.5が使えないので System.Net.Http.HttpClirentが使えないのです

Re: C#のDnsクラスを使ってwebサーバにアクセスしたい

Posted: 2014年10月07日(火) 05:07
by YuO
gari さんが書きました:
YuO さんが書きました:URIにfile以外のスキームが使われているのであればSystem.Net.Sockets.Socketクラス
fileスキームであるならばSystem.IO名前空間の各クラス
これらはどこを見たら判断できるのでしょうか、
URIの先頭から,最初の:の直前までがスキームです。
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サーバにアクセスしたい

Posted: 2014年10月07日(火) 23:13
by gari
YuO さんが書きました:
gari さんが書きました:
YuO さんが書きました:URIにfile以外のスキームが使われているのであればSystem.Net.Sockets.Socketクラス
fileスキームであるならばSystem.IO名前空間の各クラス
これらはどこを見たら判断できるのでしょうか、
URIの先頭から,最初の:の直前までがスキームです。
ref) URI Generic Syntax 3. Syntax Components
たとえばgoogleの https://www.google.com なら「https」がスキームということでいいのでしょうか。

そうであれば、私がアクセスしたいのはhttpスキームです。
YuO さんが書きました:また,HttpClient自体はNuGetで提供されていますから,.NET Framework 4.0以上の環境,Visual Studio 2010以降において利用可能です。
NuGetですか、初めて聞きました。調べてみたいと思います。
System.Net.HttpWebRequestクラスも調べてみます