.NET TIPS WebClientクラスでGETメソッドによりクエリ文字列を送信するには?デジタルアドバンテージ 遠藤 孝信2005/06/03 |
![]() |
|
検索ページなどを利用する場合、クライアント側で入力されたデータは、ページのURLの末尾にクエリ文字列として追加され、Webサーバへ送信される(HTTPプロトコルのGETメソッドが使用されている場合)。クエリ文字列は「?」で始まり、「=」で結ばれた名前と値を「&」で連結したものだ。
例えばGoogle(http://www.google.co.jp/)で「プログラマ」というキーワードを日本語のページで検索した場合、検索結果が表示されたときのURLは以下のようになる(検索ページを開く条件などにより若干異なることもある)。
http://www.google.co.jp/search?hl=ja&
このURLには、以下の3つの「名前と値」のペアがクエリ文字列として含まれている。
名前 | 値 |
hl | ja |
q | %E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9E |
lr | lang_ja |
ここで、名前「q」に対する値は、「プログラマ」という文字列がURLエンコードされたものだ(URLエンコードについては「TIPS:文字列をURLエンコードするには?」で解説している)。
QueryStringプロパティにより作成可能なクエリ文字列
アプリケーションからGETメソッドによりGoogleのようなページにリクエストを送る場合、上記のような長いURLを文字列の連結により自前で組み立て、WebClientクラス(System.Net名前空間)を使ってアクセスすることができる(WebClientクラスによるWebページのアクセスについては「TIPS:WebClientクラスでWebページを取得するには?」を参照)。
しかしWebClientクラスを使用する場合には、そのQueryStringプロパティによりクエリ文字列を指定することも可能だ。
QueryStringプロパティには、名前と値のペアを格納したNameValueCollectionクラス(System.Collections名前空間)のオブジェクトを指定する(NameValueCollectionクラスについては「TIPS:1つのキー文字列に対して複数の文字列値を保持するには?」を参照)。
あらかじめQueryStringプロパティを設定しておけば、DownloadDataメソッドやOpenReadメソッドでWebページへアクセスする際にクエリ文字列が生成され、それがURLに追加されることになる。
QueryStringプロパティを使用したサンプル・プログラム
以下に、Googleで「プログラマ」を検索する、QueryStringプロパティを使用したサンプル・プログラムを示す。
|
|
QueryStringプロパティを使用したC#のサンプル・プログラム(wcquerystr.cs) | |
|
|
QueryStringプロパティを使用したVB.NETのサンプル・プログラム(wcquerystr.vb) | |
QueryStringプロパティで指定された名前と値は単純に連結されるだけなので、全角文字を含むパラメータ(上記コードの場合には「プログラマ」)などは、あらかじめURLエンコードしておく必要がある。もちろん、Webページで使用される文字コードはあらかじめ調べておかなければならない。
カテゴリ:クラス・ライブラリ 処理対象:ネットワーク 使用ライブラリ:WebClientクラス(System.Net名前空間) 使用ライブラリ:NameValueCollectionクラス(System.Collections名前空間) 関連TIPS:文字列をURLエンコードするには? 関連TIPS:WebClientクラスでWebページを取得するには? 関連TIPS:1つのキー文字列に対して複数の文字列値を保持するには? |
|
![]() |
「.NET TIPS」 |
- 第2回 簡潔なコーディングのために (2017/7/26)
ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている - 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう - 第1回 明瞭なコーディングのために (2017/7/19)
C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える - Presentation Translator (2017/7/18)
Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
![]() |
||
|
||
![]() |