tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルStringBuilderで生成した文字列ついて
記事No8789
投稿日: 2009/03/07(Sat) 23:46
投稿者ドレミ
vb2005で質問があります。

WebRequestを使ってPHPへPOST送信を行っています。
その際にPOST送信する文字列をStringBuilderで生成しているのですが、
PCによって、文字列が途中で切れてしまう現象が起きており、
何が原因なのか全く分からないのです。

-------------------------------------------------------------------
Dim iMode As Integer = 0
Dim sKey As String = ""
Dim sVal As String = "00-07-E9-4D-C2-CF"
Dim sDate As String = Format(DateTime.Now, "yyyy/MM/dd HH:mm:ss")
Dim str As New StringBuilder()

str.Append("mode=" & iMode.ToString())
str.Append("&key=" & sKey)
str.Append("&val=" & sVal)
str.Append("&date=" & sDate)
str.Append("&del=0")

MessageBox.Show(str.ToString())
-------------------------------------------------------------------
のように、POST送信する文字列を生成してるのですが、

MessageBoxで表示すると、たとえば、
mode=1&key=test&val=00-07-E9-4D-C2-CF&date=2009/03/07 23:42:10&del=0

mode=1&key=test&val=00-07-E9-4D-C2-CF
のように途中で切れてしまうのです。
実行するパソコンによて、切れたり切れなかったりもします。
何か原因が分かりますでしょうか?

[ツリー表示へ]
タイトルRe: StringBuilderで生成した文字列ついて
記事No8790
投稿日: 2009/03/08(Sun) 21:31
投稿者よねKEN
> MessageBoxで表示すると、たとえば、
> mode=1&key=test&val=00-07-E9-4D-C2-CF&date=2009/03/07 23:42:10&del=0
> が
> mode=1&key=test&val=00-07-E9-4D-C2-CF
> のように途中で切れてしまうのです。

その切れ目の箇所にヌル文字(文字コード0の文字)が入っているのではないでしょうか?

> 実行するパソコンによて、切れたり切れなかったりもします。

ここでの例では固定値ですが、実際は動的に文字列を用意しているのですよね?
どこかでヌル文字が混入していないかチェックしてみるとよいと思います。

[ツリー表示へ]
タイトルRe^2: StringBuilderで生成した文字列ついて
記事No8800
投稿日: 2009/03/11(Wed) 17:25
投稿者ドレミ
ありがとうございます。

PCのシステム情報を取得していたのですが、その中に、
PCによってヌル文字が含まれているのがありました。
大変助かりました!ありがとうございました!

[ツリー表示へ]