我目前正在通过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。
这将是个好选择吗?任何代码示例指针?
最佳答案
从理论上讲...
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 )
}
关于.net - PowerShell等效于curl HTTP POST的文件传输,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8506533/