tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルXMLでデータを返す方法
記事No7400
投稿日: 2008/04/25(Fri) 09:14
投稿者riii
こんにちは。

.NETの本を調べても見つからないので教えていただきたいです。

今やろうとしていることは
@Windowsアプリケーションをクライアントにおく(status1,satus2,status3を受け取る)
AWebアプリケーションをWebサーバにおく

@クライアントからWebサーバに?mode=1でHttpWebRequestを送信する
AWebアプリケーションがクライアントからmode=1を受け取る。
Bmodeに応じて処理をするのだが、今回の場合、status1,satus2,status3にデータをいれ
同階層のXML形式でクライアントに返す

どのようにWEBサーバが受け取り、どう返したらいいのかさっぱりです。
参考になるようなサイトでも、どんな情報でもいいので、お願いします。

[ツリー表示へ]
タイトルRe: XMLでデータを返す方法
記事No7408
投稿日: 2008/04/26(Sat) 03:57
投稿者YuO
回答の都合上,引用順を逆転させています。
また,エンコーディングがShift_JISのため,
元記事中の丸囲み数字は(1)等に置き換えています。


> どのようにWEBサーバが受け取り、どう返したらいいのかさっぱりです。

とのことなので,サーバ側の.aspxファイルで処理する事を想定して書きます。
フィルタとか使えば別の方法もあるとは思いますが。


> (1) クライアントからWebサーバに?mode=1でHttpWebRequestを送信する
> (2) Webアプリケーションがクライアントからmode=1を受け取る。

.aspx.vbのPage_Load等で,Request.QueryString("mode")を調べると,"1"が得られます。

・System.Web.HttpRequest.QueryString
http://msdn2.microsoft.com/ja-jp/library/system.web.httprequest.querystring.aspx


> (3) modeに応じて処理をするのだが、今回の場合、status1,satus2,status3にデータをいれ
> 同階層のXML形式でクライアントに返す

サーバーコントロールやデータ連結式を使わない場合,
.aspxファイルに返すXMLをそのまま書いてしまうことができます。
@Pageディレクティブに,ContentType="application/xml"を追加しておく必要がありますが。

ただ,普通は,Response.OutputStreamをXmlDocument.Saveに渡したり,
XmlWriter.Createに渡したりして,System.Xml系のクラスを使ってXMLを取り扱うのがよいでしょう。
この場合,.aspxファイルは@Pageディレクティブだけになります。
ContentType属性はこの場合でも追加しておくのがよいでしょう。
# コードで追加してもいいですが……。

・System.Web.HttpResponse.OutputStream
http://msdn2.microsoft.com/ja-jp/library/system.web.httpresponse.outputstream.aspx
・System.Xml.XmlDocument.Save (outStream As System.IO.Stream)
http://msdn2.microsoft.com/ja-jp/library/z5250dbd.aspx
・System.Xml.XmlWriter.Create (output As System.IO.Stream)
http://msdn2.microsoft.com/ja-jp/library/x972ksd0.aspx

[ツリー表示へ]