ページ 1 / 1
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サーバーを指定して解決するような機能も持っていません。
現状の情報からであると,
を,それぞれ使うことになると思います。
スキームが特定されていれば,
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クラスも調べてみます