Foxtable(狐表)用户栏目专家坐堂 → 有个很奇怪的bug,HttpClient读取的字符串跟WebRequest的长度不同,导致读取到日期会谜之报错


  共有7928人关注过本帖树形打印复制链接

主题:有个很奇怪的bug,HttpClient读取的字符串跟WebRequest的长度不同,导致读取到日期会谜之报错

帅哥哟,离线,有人找我吗?
chen37280600
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1279 积分:7959 威望:0 精华:4 注册:2017/12/31 14:53:00
有个很奇怪的bug,HttpClient读取的字符串跟WebRequest的长度不同,导致读取到日期会谜之报错  发帖心情 Post By:2022/7/18 15:44:00 [显示全部帖子]


图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看


图片点击可在新窗口打开查看此主题相关图片如下:2.png
图片点击可在新窗口打开查看


图片点击可在新窗口打开查看此主题相关图片如下:3.png
图片点击可在新窗口打开查看


txt文档说明:这是我用Nginx部署的一个超简单的网站,直接访问可以下载文件,没什么特殊的编码,用于给客户端升级用。旧方法也是来自于论坛,一直都很稳升级,但是用HttpClient就谜之报错了
代码:
Dim url As String = "http://foxupdate.mbldt.com/MH0ClientUpdate/update.txt"

'1用旧方法读取udpate.txt
Dim req = System.Net.WebRequest.Create(url)
Dim pos = req.GetResponse
Dim stm As System.IO.Stream = pos.GetResponseStream()
Dim reader As New System.IO.StreamReader(stm)
Dim str As String = reader.ReadToEnd
pos.Close
stm.Close
reader.close
Output.Show("方法1读取:" & str)
Dim ary() As String = str.split("|")
Dim d As Date = ary(0)
Output.Show(d)

'2用新方法读取udpate.txt
Dim hc As New HttpClient(url)
hc.SkipError = True
Dim str2 As String = hc.GetData
Output.Show("方法2读取:" & str2)
Dim ary2() As String = str2.split("|")
Dim d2 As Date = ary2(0) '这里会出错,这个读取回来的字符串有毒
Output.Show(d2)


----------------------------------
千万别小看那个hc.GetData回来字符串,你就算单独拷贝放入string,再截取放入日期,也会出错。唯一方法是放到纯文本框,或者狐表帖子html编辑器模式,彻底干掉神秘东西,才会正常用,太奇怪了,官方一起来测试下?

就算把那个“有毒的字符串”,CDate()也一样不行的,有毒啊
[此贴子已经被作者于2022/7/18 15:52:49编辑过]

 回到顶部