我目前正在通过HTTP帖子上传文件,调用方式如下:
curl --verbose --data-binary @C:\Projects\TestUploadFiles\TestFile1.csv "http://client.abc.com/submit?username=UserX&password=PasswordHere&app=test1&replacejob=TestNewJob&startjob=n"
这很好用。但是,我实际上每天要上传大约3000个文件 - 我目录中的每个文件。我正在考虑写出一个包含多个cURL命令的批处理文件,每个文件一个。但这会让我为每个文件打开和关闭一次连接的开销,对吗?
所以,我正在考虑PowerShell。我不熟悉它,但我相信我可以为此目的使用WebRequest。
这是一个不错的选择吗?任何代码示例指针?
答案 0 :(得分:14)
理论上如下......
curl --verbose --data-binary @C:\Projects\TestUploadFiles\TestFile1.csv "http://client.abc.com/submit?username=UserX&password=PasswordHere&app=test1&replacejob=TestNewJob&startjob=n"
可以使用System.Net.WebClient.UploadFile替换它。例如,要上传当前目录中的所有CSV文件:
$wc = new-object System.Net.WebClient
ls *.csv | foreach {
$wc.UploadFile( 'http://client.abc.com/submit?username=UserX&password=PasswordHere&app=test1&replacejob=TestNewJob&startjob=n', $_.FullName )
}