使用 .NET FrameWork 的 System.Net.WebClient 实现下载

310996db73d36c23b396970d91e0fe00.gif

关于异步下载,使用 XMLHttp也好,WINHttp也好,都有成功案例。这里介绍另一种技术:使用 .NET FrameWork 的 System.Net.WebClient 实现下载。

这里借助的第三方为开源的 wwDotNetBridge。需要中文版详细文档的可以直接联系本文作者/译者,收费提供。

VFP可以调用的.NET--加菲猫注

示例1:同步下载:

CLEAR
DO wwDotNetBridge
Public loBridge as wwDotNetBridge
loBridge = CreateObject("wwDotNetBridge","V4")
loClient = loBridge.CreateInstance("System.Net.WebClient")
lcUrl = "下载的 URL 地址"
lcLocalPath = "带有完整路径的文件名"
loClient.DownloadFile(lcUrl, lcLocalPath)

示例2:“伪”异步下载

CLEAR
DO wwDotNetBridge
Public loBridge as wwDotNetBridge
loBridge = CreateObject("wwDotNetBridge","V4)
loClient = loBridge.CreateInstance("System.Net.WebClient")
PUBLIC loCallback
loCallback = CREATEOBJECT("MyCallback")
lcUrl = "下载的 URL 地址"
lcLocalPath = "带有完整路径的文件名"
loBridge.InvokeMethodAsync(loCallback,loClient,"DownloadFile",lcUrl, lcLocalPath)
DOEVENTS
Read EVENTS
loClient.Dispose()


DEFINE CLASS MyCallback as AsyncCallbackEvents
    FUNCTION OnCompleted(lvResult,lcMethod)
        ? "Success: " + lcMethod,lvResult
        Clear Events
    ENDFUNC
    FUNCTION OnError(lcMessage,loException,lcMethod)
        ? "Error: " + lcMethod,lcMessage
        Clear Events
    ENDFUNC
ENDDEFINE

示例3:异步下载

CLEAR
DO wwDotNetBridge
Public loBridge as wwDotNetBridge
loBridge = CreateObject("wwDotNetBridge","V4")  
loClient = loBridge.CreateInstance("System.Net.WebClient")
loHandler = CREATEOBJECT("DownloadEventHandler")
loSubscription = loBridge.SubscribeToEvents(loClient, loHandler)  
lcUrl = "下载的 URL 地址"
loUrl = loBridge.CreateInstance("System.Uri", lcUrl)
lcLocalPath = "带有完整路径的文件名"
loClient.DownloadFileAsync(loUrl, lcLocalPath)
DOEVENTS
Read EVENTS
loSubscription.Unsubscribe()
loClient.Dispose()


DEFINE CLASS DownloadEventHandler as Custom
    FUNCTION OnDownloadProgressChanged(sender, e)
        ? "下载进度:" + TRANS(loBridge.GetProperty(e,"ProgressPercentage")) + "%"
    ENDFUNC
    FUNCTION OnDownloadFileCompleted(sender, e)
         ? "下载成功" 
        Clear Events
    ENDFUNC
ENDDEFINE

新款红包封面

猫猫的心里话

加菲猫的VFP|狐友会社群接收投稿啦

加菲猫的VFP,用VFP不局限VFP,用VFP混合一切。无论是VFP,还是JS,还是C,只要能混合起来,都可以发表。

商业模式,销售技巧、需求规划、产品设计的知识通通可以发表。

暂定千字50元红包,,优秀的文章红包更大,一经发表,红包到手。

如何帮助使用VFP的人?

用VFP的人,有专业的,有非专业了,很多人其实是小白,问出的问题是小白,如果问题不对,我们引导他们问正确的问题。无论如何请不要嘲笑他们说帮助都不看,这么简单的问题都不会,嘲笑别人不行,而无法提出建设性答案,是很low的。

我们无论工作需要,还是有自己的软件,都是是需要真正的知识,如何让更多人学习真正的VFP知识呢,只需要点赞,在看,能转发朋友圈就更好了。

加菲猫的vfp倡导用"VFP极简混合开发,少写代码、快速出活,用VFP,但不局限于VFP,各种语言混合开发"

我已经带领一百多名会员成功掌到VFP的黑科技,进入了移动互联网时代,接下来我们要进入物联网领域。

2024年狐友会社群会员继续招募中

社群会员获取的权益有:

祺佑三层开发框架商业版(猫框),终身免费升级,终身技术支持。

开放的录播课程有:

微信小程序,微信公众号开发,H5 APP开发,Extjs BS开发,VFP面向对象进阶,VFP中间层开发。

源码类资源有:

支付组件源码,短信源码,权限组件源码,一些完整系统的源码。这个可以单独出售的,需要的可以联系我。

会员也可以实现群内资源对接,可以接分包,合作等各项商业或技术业务

e8c6be48c5f4e9aa2e2f69a5edf6512f.gif

dcf522955255ac46d22f74acf2cfba04.jpeg

dc31ac4e9c2ea7102a1811c7edd36892.gif

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值