タイトル | : POSTされたデータの読み方 |
記事No | : 2328 |
投稿日 | : 2005/09/28(Wed) 23:22 |
投稿者 | : こばち |
[OSのVer]:Windows xp [VBのVer]:VB.NET2003 はじめまして、こばちと申します。 ASPからVB.NETへの移行を行おうと思っています。 今、私がやっているシステムは、クライアントにDelphi6.0で開発されたexeがあり、サーバー側にasp で作成されたプログラムがIISで動作しています。つまり、ウェブ開発ではないのですが、ウェブの機 構を使って文字列の交換を行うという変則的なやり方をしています。で、このサーバー側のaspを vb.netで書き直す予定です。 で、クライアント側DelphiのexeはGetでは文字列制限があるので、Postメソッドを利用して送信して きますので、vb.net側はPostされた文字列を読む必要があります。 [asp時代のコーディング] <% Dim ReturnData DIM binRead DIM byteCount Dim cText byteCount = Request.TotalBytes binRead = Request.BinaryRead(byteCount) cText = Bin2Str(binRead) 'バイナリを文字列に変換するユーザ定義関数 Response.Write(cText) %> <% Function Bin2Str(byteData) Bin2Str ="" i = 1 Do While i <= LenB(byteData) u = Hex(AscB(MidB(byteData, i, 1))) If ((CInt("&H" & u) >= &H81) And (CInt("&H" & u) <= &H9F)) _ Or ((CInt("&H" & u) >= &HE0) And (CInt("&H&qu ot; & u) <= &HFC)) Then 'Code Page 932 l = Hex(AscB(MidB(byteData, i + 1, 1))) intChar = CInt("&H" & u & l) s = Chr(intChar) i = i + 2 Else intChar = CInt("&H" & u) s = Chr(intChar) i = i + 1 End If Bin2Str = Bin2Str & s Loop End Function %> <% Function Str2Bin(strData) 'バイナリのバイト文字を文字列に変換する。
End Function %> >% [ここまで]
実は、Str2Binという関数は夢野國夫さんという方がhpで公開されているものです。中身はそちらを娯楽下さい。正直内容に関しては全く理解していないで利用させていただいていました。 また、Request.BinaryReadに関してはhelpを参照しても「aspとの互換性のために残した」と記述して ありますので、vb.netではもっと楽な方法で取得できるのでは、とも思うのですが、InputStreamなど それらしいものを利用しても上手く行かない状況です。 ずっとクラサバ畑にいたので、こうしたhttpのやり取りは今ひとつスキルが足らないのですが、何卒 ご教授いただけませんでしょうか。
|