在PowerShell中通过HTTP POST上传文件

时间:2012-08-07 15:01:49

标签: powershell powershell-v2.0 powershell-v3.0

我正在使用文件主机备份我的云端硬盘。这个文件主机提供了一个API来完成它,但我无法让它在powershell上运行。

在他们的API网站(http://code.google.com/p/filecloud/wiki/Uploading)上,他们声称“我们通过HTTP POST请求上传文件”,因此我使用了我可靠的POST_Request函数:

function POST_Request ($url,$parameters) {
$client = New-Object System.Net.WebClient 
$contents = [Text.Encoding]::UTF8.GetString(($client.UploadValues($url,$parameters) ))
return $contents
}

由于他们的网站声称他们需要发送2个参数才能上传(我帐户的一种ID和文件),我无法在UploadFile对象中使用System.Net.WebClient

总之,我的问题是:如何通过POST传递参数(id)和要上传的文件? (也许是UploadFile的诀窍就可以了)

非常感谢提前!

1 个答案:

答案 0 :(得分:1)

通常将它们放在NameValueCollection IIRC中,NameValueCollection实例作为“值”参数传递给UploadValues()。您正在使用$parameters。这是传递给你还是你创造它?无论哪种方式,如果它是NameValueCollection,请使用Add方法为所需参数添加名称/值对。