Foxtable(狐表)用户栏目专家坐堂 → web下载文件的问题


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

主题:web下载文件的问题

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


加好友 发短信
等级:小狐 帖子:302 积分:2069 威望:0 精华:0 注册:2017/11/19 9:46:00
web下载文件的问题  发帖心情 Post By:2021/5/16 14:37:00 [只看该作者]

今年升版之后,用hc.getfile() 从web服务端请求下载文件,服务端即使使用e.writestring("  ")而不发送e.writefile,客户端那里还是生成一个假的文件。

这样一来hf.getfile()返回的永远是true。

很多之前的判断逻辑都不适用了。是不是这次foxtable升版之后在这里的逻辑需要重新考虑一下?

我知道这个改变是之前服务器推送大小为零的空文件导致报错,但这么改后的逻辑也不符合实际使用,带来了更多的问题。

 回到顶部
帅哥哟,离线,有人找我吗?
lgzhao
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:302 积分:2069 威望:0 精华:0 注册:2017/11/19 9:46:00
  发帖心情 Post By:2021/5/16 14:53:00 [只看该作者]

此外 hc.skiperro项似乎不起作用。

如果我用hc.getdata(),当服务器端直接不响应时,客户端这头还是跳出错误提示404
这样的话这个属性的作用就没有发挥出来。

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107135 积分:544918 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/5/16 21:01:00 [只看该作者]

回1楼,结合StatusCode使用即可

httprequest
Select Case e.Path
    Case "test.htm"
        e.Response.StatusCode = "404"
        e.WriteString("")
End Select


客户端调用
Dim hc As New HttpClient("http://127.0.0.1/test.htm")
hc.SkipError = True
If hc.GetFile("c:\data\123.jpg") Then
    MessageBox.show("文件下载成功","提示")
Else
    MessageBox.show("文件下载失败","提示")
End If
Output.Show("hc.StatusCode=" & hc.StatusCode)

回2楼,我测试SkipError 是有效的
Dim hc As New HttpClient("http://127.0.0.1/test.htm")
hc.SkipError = True
hc.GetData
Output.Show("hc.StatusCode=" & hc.StatusCode)

 回到顶部