• ベストアンサー

aspで標準入力は受け取れますか?

http://www.geocities.jp/java_iappli/java94.htm 上記のページを参考に、iアプリで入力された内容をCGIプログラムを利用してテキストファイルに書き込むことを考えています。 しかし、事情によりサーバ側のプログラムにはaspしか使えません。 aspで標準入力を受け取ることができるのか、できるとしたらどうやればいいのか、自分では調べてもわかりませんでした。 ご存知の方、お力をお貸しください。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • Lchan0211
  • ベストアンサー率64% (239/371)
回答No.2

http://www.site-cooler.com/kwl/asp/10.htm#10-3http://msdn.microsoft.com/ja-jp/library/cc338854.aspx にある通り、「符号なしバイト配列」が返されます。 このデータを処理する場合、 BASP21を利用して、バイト配列のままファイルに書くか、 (参考:http://www.hi-ho.ne.jp/babaq/basp21.html#0023) 自前でバイナリ文字列変換処理を実施してファイルに 書きこむ必要があると思います。 (参考:http://yumenokunisha.com/html/develop/bin2str.htm) または、Request.Formで処理できるよう、クライアント(iアプリ) とのインタフェースを見直す手もあると思います。

その他の回答 (2)

  • Lchan0211
  • ベストアンサー率64% (239/371)
回答No.3

参考に示したURLがうまくリンクされてなかったので、 URLだけ再投稿します。 (BASP21のBinaryWrite) http://www.hi-ho.ne.jp/babaq/basp21.html#0023 (バイナリ文字列変換処理9 http://yumenokunisha.com/html/develop/bin2str.htm

souitirou1
質問者

お礼

2番の投稿とまとめて返答いたします。 BASP21のページを参考に、バイト配列でdatファイルに書き込む方法を試してみたところ、うまくいきました! 以下がソースです。 data=Request.BinaryRead(Request.TotalBytes) Set objBASP=Server.CreateObject("basp21") ret=objBASP.BinaryWrite(data,"datファイル名",1) Set objBASP=Nothing バイナリ文字列変換処理や、iアプリからの送信方法の見直しもチャレンジしてみるつもりですが、 ひとまずこれで解決としたいと思います。 この疑問がこんな短時間で解決するとは思いませんでした。 Lchan0211さん、ありがとうございました!

  • Lchan0211
  • ベストアンサー率64% (239/371)
回答No.1

CGI(perl)で標準入力から読み取るデータは、 http(POSTメソッド)のリクエストボディです。 aspの場合、このデータは request.BinaryReadで読み取ることができます。 (参考) http://www.site-cooler.com/kwl/asp/10.htm#10-3

souitirou1
質問者

補足

回答ありがとうございます! 早速URLを参考にaspファイルを考えてみたのですが、うまく動きません。。。。 Set objFSO=Server.CreateObject("Scripting.FileSystemObject") Set objFile=objFSO.OpenTextFile("書き込むファイル名",8,false) data=Request.BinaryRead(Request.TotalBytes) For Each item in data   objFile.WriteLine data(item) Next objFile.Close Set objFile=Nothing Set objFSO=Nothing 上記のプログラムの4行目で「型が一致しません」とエラーが出てしまいます。 読み取るデータは何型なのでしょうか? 尚、iアプリのプログラムは http://www.geocities.jp/java_iappli/java94.htm に書かれているものとほとんど同じです(cgiをaspに変えているだけです)。

関連するQ&A

専門家に質問してみよう