C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[8]: HTTPデータ取得方法


(過去ログ 34 を表示中)

[トピック内 14 記事 (1 - 14 表示)]  << 0 >>

■16960 / inTopicNo.1)  HTTPデータ取得方法
  
□投稿者/ たろ (12回)-(2008/04/14(Mon) 14:07:43)

分類:[.NET 全般] 

2008/04/14(Mon) 14:10:15 編集(投稿者)
2008/04/14(Mon) 14:10:11 編集(投稿者)

お世話になっております。

環境は、visual Studio2005 FrameWork2.0 で
C#(asp.net)によるWEBの開発をおこなっております。

HTTPを使用してパラメータを取得しなければならないのですが、ファイルを指定できません。(客先仕様の為)

<ファイルを指定する場合>
http://IP/仮想ディレクトリ/test.aspx?パラメータ1=A&パラメータ2=B

といったように、ファイルを指定できればパラメータの取得が可能なのですが、

<ファイルを指定しない場合>
http://IP/TEST?パラメータ1=A&パラメータ2=B

といったように、今回はこれでパラメータを取得しなければなりません。(客先で指定されたHTTPを使用しなければならない為)

ちなみに「TEST」という仮想ディレクトリを作成すればパラメータの取得は可能なのですが、
客先からは、できれば仮想ディレクトリの作成はしたくないと言われました。。

そんなことできるのでしょうか?










引用返信 編集キー/
■16962 / inTopicNo.2)  Re[1]: HTTPデータ取得方法
□投稿者/ はつね (596回)-(2008/04/14(Mon) 14:41:15)
はつね さんの Web サイト
No16960 (たろ さん) に返信
> 環境は、visual Studio2005 FrameWork2.0 で
> C#(asp.net)によるWEBの開発をおこなっております。

Visual Studio 2005 (.NET Framework 2.0)でC#を使ってASP.NETで開発を行っているという事ですね。
# 大文字小文字などにも注意を払うと知識が深まりますよ。


> <ファイルを指定する場合>
> http://IP/仮想ディレクトリ/test.aspx?パラメータ1=A&パラメータ2=B
>
> といったように、ファイルを指定できればパラメータの取得が可能なのですが、
>
> <ファイルを指定しない場合>
> http://IP/TEST?パラメータ1=A&パラメータ2=B

上記のそれぞれのURL表現を <ファイルを指定する場合><ファイルを指定しない場合>とは言わないような。
仮想ディレクトリも.aspxという拡張子もつけないで指定したいって事ですよね?


> ちなみに「TEST」という仮想ディレクトリを作成すればパラメータの取得は可能なのですが、
> 客先からは、できれば仮想ディレクトリの作成はしたくないと言われました。。

仮想ディレクトリを作りたくないという事は、そのIISのルートディレクトリと、C#で作ったWEBサイトのルートを一致させればできますが、本当にそんな構造でいいですか。大雑把に言えば、そのip-addressはそのC#で作ったWEBアプリ専用になってしまいますよ。
まず、ここをクリアすれば以下のようなURLで動作させる事はできると思います。
http://ip-address/test.aspx?パラメータ1=A&パラメータ2=B

次に、test.aspをtestとしたいのでしょうか。
拡張子が指定されていなかったときは.aspxと同じと見なすようにすればいけそうですが、あまり見かけないですね。
できるのかな。
参考URL:
http://www.microsoft.com/japan/msdn/net/aspnet/URLRewriting.aspx


引用返信 編集キー/
■16963 / inTopicNo.3)  Re[1]: HTTPデータ取得方法
□投稿者/ やじゅ (301回)-(2008/04/14(Mon) 14:46:28)
No16960 (たろ さん) に返信
> HTTPを使用してパラメータを取得しなければならないのですが、ファイルを指定できません。(客先仕様の為)
>

FORMのパラメータを使えばいいわけで、クエリパラメータを使わなければいいのでは?

引用返信 編集キー/
■16964 / inTopicNo.4)  Re[2]: HTTPデータ取得方法
□投稿者/ たろ (13回)-(2008/04/14(Mon) 15:05:31)
はつねさん、返信ありがとうございます。


No16962 (はつね さん) に返信
> ■No16960 (たろ さん) に返信
>>環境は、visual Studio2005 FrameWork2.0 で
>>C#(asp.net)によるWEBの開発をおこなっております。
>
> Visual Studio 2005 (.NET Framework 2.0)でC#を使ってASP.NETで開発を行っているという事ですね。
> # 大文字小文字などにも注意を払うと知識が深まりますよ。
>

勉強になります。。

>
>><ファイルを指定する場合>
>>http://IP/仮想ディレクトリ/test.aspx?パラメータ1=A&パラメータ2=B
>>
>>といったように、ファイルを指定できればパラメータの取得が可能なのですが、
>>
>><ファイルを指定しない場合>
>>http://IP/TEST?パラメータ1=A&パラメータ2=B
>
> 上記のそれぞれのURL表現を <ファイルを指定する場合><ファイルを指定しない場合>とは言わないような。
> 仮想ディレクトリも.aspxという拡張子もつけないで指定したいって事ですよね?
>
>
>>ちなみに「TEST」という仮想ディレクトリを作成すればパラメータの取得は可能なのですが、
>>客先からは、できれば仮想ディレクトリの作成はしたくないと言われました。。
>
> 仮想ディレクトリを作りたくないという事は、そのIISのルートディレクトリと、C#で作ったWEBサイトのルートを一致させればできますが、本当にそんな構造でいいですか。大雑把に言えば、そのip-addressはそのC#で作ったWEBアプリ専用になってしまいますよ。
> まず、ここをクリアすれば以下のようなURLで動作させる事はできると思います。
> http://ip-address/test.aspx?パラメータ1=A&パラメータ2=B
>
> 次に、test.aspをtestとしたいのでしょうか。
> 拡張子が指定されていなかったときは.aspxと同じと見なすようにすればいけそうですが、あまり見かけないですね。
> できるのかな。
> 参考URL:
> http://www.microsoft.com/japan/msdn/net/aspnet/URLRewriting.aspx
>
>

確かに、仮想ディレクトリを作成しないのは問題がありそうですね。。

今の仕様は、
@http://IP/TEST1?パラメータ1=A&パラメータ2=B
Ahttp://IP/TEST2?パラメータ1=A&パラメータ2=B&パラメータ3=C

という2パターンが存在するけど、仮想ディレクトリをそれぞれ作成したくない。
ということなので、

1つの仮想ディレクトリで上記の2パターンを取得できればOKなのですが、そんなことってできますか?

ちなみに、TEST1もTEST2も同じaspxファイルを参照したいです。






引用返信 編集キー/
■16965 / inTopicNo.5)  Re[2]: HTTPデータ取得方法
□投稿者/ たろ (14回)-(2008/04/14(Mon) 15:10:26)
やじゅ さん、返信ありがとうございます。


No16963 (やじゅ さん) に返信
> ■No16960 (たろ さん) に返信
>>HTTPを使用してパラメータを取得しなければならないのですが、ファイルを指定できません。(客先仕様の為)
> >
>
> FORMのパラメータを使えばいいわけで、クエリパラメータを使わなければいいのでは?
>


すいません。。
問題は、ファイルが指定できないことではなく、複数パターンあるHTTP要求を1つの仮想ディレクトリで処理したいと言うことでした。。

今の仕様は、
@http://IP/TEST1?パラメータ1=A&パラメータ2=B
Ahttp://IP/TEST2?パラメータ1=A&パラメータ2=B&パラメータ3=C

という2パターンが存在するけど、仮想ディレクトリをそれぞれ作成したくない。
ということなので、

1つの仮想ディレクトリで上記の2パターンを取得できればOKなのですが、そんなことってできますか?

ちなみに、TEST1もTEST2も同じaspxファイルを参照したいです。



引用返信 編集キー/
■16969 / inTopicNo.6)  Re[3]: HTTPデータ取得方法
□投稿者/ やじゅ (303回)-(2008/04/14(Mon) 15:24:18)
No16964 (たろ さん) に返信
>
> 今の仕様は、
> @http://IP/TEST1?パラメータ1=A&パラメータ2=B
> Ahttp://IP/TEST2?パラメータ1=A&パラメータ2=B&パラメータ3=C
>

その前に、パラメータ1=A&パラメータ2=Bという
クエリパラメータを使用しなければならないかどうか?
パラメータは、FORM形式でも渡せるので、どうなのかな?と思ったわけで・・・

引用返信 編集キー/
■16971 / inTopicNo.7)  Re[4]: HTTPデータ取得方法
□投稿者/ たろ (15回)-(2008/04/14(Mon) 15:34:19)

やじゅ さん、返信ありがとうございます。

No16969 (やじゅ さん) に返信
> ■No16964 (たろ さん) に返信
>>
>>今の仕様は、
>>@http://IP/TEST1?パラメータ1=A&パラメータ2=B
>>Ahttp://IP/TEST2?パラメータ1=A&パラメータ2=B&パラメータ3=C
> >
>
> その前に、パラメータ1=A&パラメータ2=Bという
> クエリパラメータを使用しなければならないかどうか?
> パラメータは、FORM形式でも渡せるので、どうなのかな?と思ったわけで・・・
>

パラメータの受け渡しは、GETで指定されたパラメータを使用しなければなりません。。
・・・これで回答になってますかね?

すいません、クエリパラメータがよくわからなかったもので・・・。

ちなみに、FORM形式の受け渡しってPOSTのことですか??





引用返信 編集キー/
■16972 / inTopicNo.8)  Re[3]: HTTPデータ取得方法
□投稿者/ はつね (597回)-(2008/04/14(Mon) 15:35:18)
はつね さんの Web サイト
No16964 (たろ さん) に返信

> 確かに、仮想ディレクトリを作成しないのは問題がありそうですね。。
>
> 今の仕様は、
> @http://IP/TEST1?パラメータ1=A&パラメータ2=B
> Ahttp://IP/TEST2?パラメータ1=A&パラメータ2=B&パラメータ3=C
>
> という2パターンが存在するけど、仮想ディレクトリをそれぞれ作成したくない。

もしかして、

http://ip-address/仮想ディレクトリ/test1.aspx?パラメータ1=A&パラメータ2=B
http://ip-address/仮想ディレクトリ/test2.aspx?パラメータ1=A&パラメータ2=B

test1.aspxとtest2.aspxは同じaspxを指し示せば良いって事ですか?

引用返信 編集キー/
■16973 / inTopicNo.9)  Re[5]: HTTPデータ取得方法
□投稿者/ やじゅ (304回)-(2008/04/14(Mon) 15:37:36)
No16971 (たろ さん) に返信
>
> パラメータの受け渡しは、GETで指定されたパラメータを使用しなければなりません。。
> ・・・これで回答になってますかね?
>
> すいません、クエリパラメータがよくわからなかったもので・・・。
>
> ちなみに、FORM形式の受け渡しってPOSTのことですか??
>

そうです。私もWEB開発は大分やってないので言葉を忘れてました(^^;
GET送信とPOST送信ですね。

引用返信 編集キー/
■16974 / inTopicNo.10)  Re[4]: HTTPデータ取得方法
□投稿者/ たろ (16回)-(2008/04/14(Mon) 15:49:20)

はつね さん、返信ありがとうございます。

No16972 (はつね さん) に返信
> ■No16964 (たろ さん) に返信
>
>>確かに、仮想ディレクトリを作成しないのは問題がありそうですね。。
>>
>>今の仕様は、
>>@http://IP/TEST1?パラメータ1=A&パラメータ2=B
>>Ahttp://IP/TEST2?パラメータ1=A&パラメータ2=B&パラメータ3=C
>>
>>という2パターンが存在するけど、仮想ディレクトリをそれぞれ作成したくない。
>
> もしかして、
>
> http://ip-address/仮想ディレクトリ/test1.aspx?パラメータ1=A&パラメータ2=B
> http://ip-address/仮想ディレクトリ/test2.aspx?パラメータ1=A&パラメータ2=B
>
> test1.aspxとtest2.aspxは同じaspxを指し示せば良いって事ですか?
>

ちょっと違いますね。。


@http://ip-address/TEST1?パラメータ1=A&パラメータ2=B
Ahttp://ip-address/TEST2?パラメータ1=A&パラメータ2=B&パラメータ3=C

この二つの文字列を渡すから、なるべく仮想ディレクトリを増やさないで画面を表示してって感じです。。

で元々、1つの仮想ディレクトリを使用したアプリがあるので、できればその仮想ディレクトリを使用して、上記の2つのHTTPデータの取得も行いたいということです。(もしくは上記2つで1つの仮想ディレクトリ)

<今使用している仮想ディレクトリ>
http://ip-address/仮想ディレクトリ/test.aspx

<例>
1、上記@を実行
2、test.aspxで「パラメータ1=A&パラメータ2=B」を取得

1、上記Aを実行
2、test.aspxで「パラメータ1=A&パラメータ2=B&パラメータ3=C」を取得
※この時、test1かtest2かを判断したいです。。

・・・伝わりますかね?







引用返信 編集キー/
■16978 / inTopicNo.11)  Re[5]: HTTPデータ取得方法
□投稿者/ はつね (598回)-(2008/04/14(Mon) 16:43:51)
はつね さんの Web サイト
No16974 (たろ さん) に返信
> > http://ip-address/仮想ディレクトリ/test1.aspx?パラメータ1=A&パラメータ2=B
> > http://ip-address/仮想ディレクトリ/test2.aspx?パラメータ1=A&パラメータ2=B
> ちょっと違いますね。。

違わないじゃないの?

> <今使用している仮想ディレクトリ>
> http://ip-address/仮想ディレクトリ/test.aspx

なんですよね?
同じじゃん。

あとは、test1.aspxとtest2.aspxを(実際にやりたいのは.aspxを除きたいという要望もあるみたいだけど)test.aspxにマッピングするなり自動的にリダイレクトするだけの話でしょ?

引用返信 編集キー/
■17213 / inTopicNo.12)  Re[6]: HTTPデータ取得方法
□投稿者/ たろ (17回)-(2008/04/18(Fri) 17:35:02)
はつねさん、返信ありがとうございます。

結局、あの後お客様と話した結果、複数仮想ディレクトリを作成してもいいということになりました。

なので、やりたいことは、

複数の仮想ディレクトリを1つのweb.configで管理したいです。


http://ip-address/仮想ディレクトリ1/test1.aspx?パラメータ1=A&パラメータ2=B
http://ip-address/仮想ディレクトリ2/test2.aspx?パラメータ1=A&パラメータ2=B
http://ip-address/仮想ディレクトリ3/test3.aspx?パラメータ1=A&パラメータ2=B

上記の3つを1つのweb.configで管理して、インストーラーも1つにしたい。。

こんなことって可能ですかね?

お客様曰く、.netFrameWork2.0からできたと思うそうです。。




No16978 (はつね さん) に返信
> ■No16974 (たろ さん) に返信
>>> http://ip-address/仮想ディレクトリ/test1.aspx?パラメータ1=A&パラメータ2=B
>>> http://ip-address/仮想ディレクトリ/test2.aspx?パラメータ1=A&パラメータ2=B
>>ちょっと違いますね。。
>
> 違わないじゃないの?
>
>><今使用している仮想ディレクトリ>
>>http://ip-address/仮想ディレクトリ/test.aspx
>
> なんですよね?
> 同じじゃん。
>
> あとは、test1.aspxとtest2.aspxを(実際にやりたいのは.aspxを除きたいという要望もあるみたいだけど)test.aspxにマッピングするなり自動的にリダイレクトするだけの話でしょ?
>
引用返信 編集キー/
■17215 / inTopicNo.13)  Re[7]: HTTPデータ取得方法
□投稿者/ はつね (608回)-(2008/04/18(Fri) 17:55:53)
はつね さんの Web サイト
2008/04/18(Fri) 17:59:00 編集(投稿者)

No17213 (たろ さん) に返信
> 結局、あの後お客様と話した結果、複数仮想ディレクトリを作成してもいいということになりました。
>
> なので、やりたいことは、
>
> 複数の仮想ディレクトリを1つのweb.configで管理したいです。
>
> http://ip-address/仮想ディレクトリ1/test1.aspx?パラメータ1=A&パラメータ2=B
> http://ip-address/仮想ディレクトリ2/test2.aspx?パラメータ1=A&パラメータ2=B
> http://ip-address/仮想ディレクトリ3/test3.aspx?パラメータ1=A&パラメータ2=B

なんで仮想ディレクトリが複数あるのですか?
仮想ディレクトリそれぞれにWEBアプリがあるようなイメージでしょうか?
web.configを1つにしたいという事は、VS2005で作成するWEBアプリは1つですよね。
だとしたら、仮想ディレクトリも1つが基本です。

パターン1:
http://ip-address/仮想ディレクトリ/test1.aspx?パラメータ1=A&パラメータ2=B
http://ip-address/仮想ディレクトリ/test2.aspx?パラメータ1=A&パラメータ2=B
http://ip-address/仮想ディレクトリ/test3.aspx?パラメータ1=A&パラメータ2=B

→仮想ディレクトリの直下にweb.configが1つ

パターン2:
http://ip-address/フォルダ1/test1.aspx?パラメータ1=A&パラメータ2=B
http://ip-address/フォルダ2/test2.aspx?パラメータ1=A&パラメータ2=B
http://ip-address/フォルダ3/test3.aspx?パラメータ1=A&パラメータ2=B

→IISルートディレクトリの直下にweb.configが1つ。フォルダ1、フォルダ2、フォルダ3は仮想ディレクトリではなくIISルート直下の物理フォルダ


なんか工夫すればできるかも知れないけれど、質問者の方もお客様もASP.NETでの開発の経験が不足してそうなので、王道パターンでいけるなら王道でやっといた方が後から悩まなくて済むはず。変にここらへんを工夫しすぎると、書籍の情報が適用できるない、工夫した事がネックになって問題を解決できない、などに遭遇する事も多そう。

引用返信 編集キー/
■17267 / inTopicNo.14)  Re[8]: HTTPデータ取得方法
□投稿者/ たろ (18回)-(2008/04/21(Mon) 09:52:59)
2008/04/21(Mon) 10:51:54 編集(投稿者)
2008/04/21(Mon) 10:13:54 編集(投稿者)
はつねさん、返信ありがとうございます。


No17215 (はつね さん) に返信
> 2008/04/18(Fri) 17:59:00 編集(投稿者)
>
> ■No17213 (たろ さん) に返信
>>結局、あの後お客様と話した結果、複数仮想ディレクトリを作成してもいいということになりました。
>>
>>なので、やりたいことは、
>>
>>複数の仮想ディレクトリを1つのweb.configで管理したいです。
>>
>>http://ip-address/仮想ディレクトリ1/test1.aspx?パラメータ1=A&パラメータ2=B
>>http://ip-address/仮想ディレクトリ2/test2.aspx?パラメータ1=A&パラメータ2=B
>>http://ip-address/仮想ディレクトリ3/test3.aspx?パラメータ1=A&パラメータ2=B
>
> なんで仮想ディレクトリが複数あるのですか?

なんでかというと、今までは上記の仮想ディレクトリ1で1つwebアプリを動作させていたのですが、
今回追加された作業で、「http://ip-address/仮想ディレクトリ2」「http://ip-address/仮想ディレクトリ3」で呼び出された場合、
各々の画面を表示するという動きが追加されました。

http://ip-address/仮想ディレクトリ2」と「http://ip-address/仮想ディレクトリ3」の仮想ディレクトリ名は固定で決められてしまっています。
固定でなければ仮想ディレクトリ1を使用するのですが・・・・。

表示する画面は、今までの仮想ディレクトリ1でも表示している画面なので、遷移先のプロジェクトは同じものを使用したいのです。


http://ip-address/仮想ディレクトリ1/test1.aspx?パラメータ1=A&パラメータ2=B
http://ip-address/仮想ディレクトリ2/test2.aspx?パラメータ1=A&パラメータ2=B
http://ip-address/仮想ディレクトリ3/test3.aspx?パラメータ1=A&パラメータ2=B

→仮想ディレクトリ1の直下にweb.configが1つ(ここで仮想ディレクトリ2と3も管理)

物理ファルダ
仮想ディレクトリ1参照/フォルダ1/test1.aspx?パラメータ1=A&パラメータ2=B
仮想ディレクトリ2参照/フォルダ1/test2.aspx?パラメータ1=A&パラメータ2=B
仮想ディレクトリ3参照/フォルダ1/test3.aspx?パラメータ1=A&パラメータ2=B

→同じフォルダ1内のプロジェクトを参照。。

というようにWEBアプリ1つに対して仮想ディレクトリを複数持つことはできないですかね?

・・・実際やってみたら、上記のように3つの仮想ディレクトリで1つWEBアプリを参照することができました!
あとはセットアッププロジェクトで3つの仮想ディレクトリを作成できるかどうかですね。。
そんなことって可能でしょうかね?

また、動いてはいるけど上記のやり方で問題ないですかね?

> 仮想ディレクトリそれぞれにWEBアプリがあるようなイメージでしょうか?
> web.configを1つにしたいという事は、VS2005で作成するWEBアプリは1つですよね。
> だとしたら、仮想ディレクトリも1つが基本です。
>
> パターン1:
> http://ip-address/仮想ディレクトリ/test1.aspx?パラメータ1=A&パラメータ2=B
> http://ip-address/仮想ディレクトリ/test2.aspx?パラメータ1=A&パラメータ2=B
> http://ip-address/仮想ディレクトリ/test3.aspx?パラメータ1=A&パラメータ2=B
>
> →仮想ディレクトリの直下にweb.configが1つ
>
> パターン2:
> http://ip-address/フォルダ1/test1.aspx?パラメータ1=A&パラメータ2=B
> http://ip-address/フォルダ2/test2.aspx?パラメータ1=A&パラメータ2=B
> http://ip-address/フォルダ3/test3.aspx?パラメータ1=A&パラメータ2=B
>
> →IISルートディレクトリの直下にweb.configが1つ。フォルダ1、フォルダ2、フォルダ3は仮想ディレクトリではなくIISルート直下の物理フォルダ
>
>
> なんか工夫すればできるかも知れないけれど、質問者の方もお客様もASP.NETでの開発の経験が不足してそうなので、王道パターンでいけるなら王道でやっといた方が後から悩まなくて済むはず。変にここらへんを工夫しすぎると、書籍の情報が適用できるない、工夫した事がネックになって問題を解決できない、などに遭遇する事も多そう。
>

1つのwebアプリで1つの仮想ディレクトリは経験あるのですが、このような仕様は初めてで困惑しています。。
私的には複雑にしたくないのですが・・・。



引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -