以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  有个很奇怪的bug,HttpClient读取的字符串跟WebRequest的长度不同,导致读取到日期会谜之报错  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=178737)

--  作者:chen37280600
--  发布时间:2022/7/18 15:44:00
--  有个很奇怪的bug,HttpClient读取的字符串跟WebRequest的长度不同,导致读取到日期会谜之报错

图片点击可在新窗口打开查看此主题相关图片如下: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编辑过]

--  作者:有点蓝
--  发布时间:2022/7/18 16:04:00
--  
可能是mime的原因。我反馈一下。

可以使用下载文件的方式
Dim hc As New HttpClient(url)
If hc.GetFile("D:\\问题\\123.txt") Then
    MessageBox.show("文件下载成功", "提示")
Else
    MessageBox.show("文件下载失败", "提示")
End If

Dim str2 As String = FileSys.ReadAllText("D:\\问题\\123.txt")

--  作者:狐狸爸爸
--  发布时间:2022/7/18 22:42:00
--  
搞定,重新下载安装一下吧
--  作者:浙江仔
--  发布时间:2022/7/19 8:00:00
--  
以下是引用狐狸爸爸在2022/7/18 22:42:00的发言:
搞定,重新下载安装一下吧

720版安装还是718,一直提示有新版可下载


--  作者:有点蓝
--  发布时间:2022/7/19 8:38:00
--  
以下是引用浙江仔在2022/7/19 8:00:00的发言:

720版安装还是718,一直提示有新版可下载

重新下载
--  作者:肥肥记
--  发布时间:2022/9/5 22:45:00
--  
我以前做的下载升级是这样优化的,        Dim d As Date =System.Text.RegularExpressions.Regex.Match(ary(0),"[0-9\\-]+").ToString()