前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用 .NET FrameWork 的 System.Net.WebClient 实现下载

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

作者头像
加菲猫的VFP
发布2024-02-27 08:13:21
1150
发布2024-02-27 08:13:21
举报
文章被收录于专栏:加菲猫的VFP

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

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

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

示例1:同步下载:

代码语言:javascript
复制

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:“伪”异步下载

代码语言:javascript
复制
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:异步下载

代码语言:javascript
复制
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
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-02-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 加菲猫的VFP 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档