2011-12-14 106 views
9

我目前上傳文件,像這樣的電話:PowerShell的等價捲曲HTTP POST爲通過一個HTTP POST文件傳輸

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。

這會是一個不錯的選擇嗎?任何代碼示例指針?

回答

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) 
} 
+0

感謝Scott!這對我有用。 – Sylvia 2011-12-15 08:41:29