PowerShell相当于curl HTTP POST进行文件传输

时间:2011-12-14 14:55:31

标签: .net powershell curl

我目前正在通过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。

这是一个不错的选择吗?任何代码示例指针?

1 个答案:

答案 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 )
}