我有兴趣了解如何从 SSIS 进行 HTTP 调用。例如,我希望能够从以下位置下载文件http://www.domain.com/resource.zip
并记录下载的日期时间和驱动器上文件的目的地。我还想捕获文件大小等属性并捕获下载完成时的日期和时间。
您可以使用命名空间System.Net.WebClient
在以下命令的帮助下发出 Http 请求Script Task
在SSIS中。以下示例展示了如何实现这一点。该示例创建于SSIS 2008 R2
.
分步过程:
创建一个新的SSIS包并创建两个变量,即远程Uri and 本地文件夹。设置变量RemoteUri
与价值http://www.google.com/intl/en_com/images/srpr/logo1w.png
。这是 Google 主页上徽标的图像 URL。设置变量LocalFolder
与价值C:\temp\
。这是我们要保存内容的路径。参考截图#1.
在 SSIS 包上,放置一个Script Task
。将脚本任务中的 Main() 方法替换为脚本任务代码部分。参考截图#2.
截屏 #3显示路径C:\temp\
是空的。
截屏 #4显示包执行成功。
截屏 #5显示内容(在本例中为徽标图像)已下载到本地文件夹路径。
截屏 #6显示代码经过测试可以下载 .zip 文件。为了实现这一点,变量的值远程Uri已更改为需要下载的内容 url。
脚本任务代码:
C#代码只能在SSIS 2008 and above
.
public void Main()
{
Variables varCollection = null;
Dts.VariableDispenser.LockForRead("User::RemoteUri");
Dts.VariableDispenser.LockForRead("User::LocalFolder");
Dts.VariableDispenser.GetVariables(ref varCollection);
System.Net.WebClient myWebClient = new System.Net.WebClient();
string webResource = varCollection["User::RemoteUri"].Value.ToString();
string fileName = varCollection["User::LocalFolder"].Value.ToString() + webResource.Substring(webResource.LastIndexOf('/') + 1);
myWebClient.DownloadFile(webResource, fileName);
Dts.TaskResult = (int)ScriptResults.Success;
}
屏幕截图#1:
屏幕截图#2:
屏幕截图#3:
屏幕截图#4:
屏幕截图#5:
屏幕截图#6:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)