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

Syl*_*via 9 .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"
Run Code Online (Sandbox Code Playgroud)

这很好用.但是,我实际上每天要上传大约3000个文件 - 我目录中的每个文件.我正在考虑写出一个包含多个cURL命令的批处理文件,每个文件一个.但这会给我带来为每个文件打开和关闭一次连接的开销,对吧?

所以,我正在考虑PowerShell.我不熟悉它,但我相信我可能会为此目的使用WebRequest.

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

Sco*_*aad 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"
Run Code Online (Sandbox Code Playgroud)

可以使用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 )
}
Run Code Online (Sandbox Code Playgroud)