RapidShare的API使用PowerShell(Rapidshare API with Pow

2019-07-31 08:14发布

$FreeUploadServer = Invoke-RestMethod -Uri "http://api.rapidshare.com/cgi-bin/rsapi.cgi?sub=nextuploadserver"
Invoke-RestMethod -Uri "http://rs$FreeUploadServer.rapidshare.com/cgi-bin/rsapi.cgi?sub=upload&login=43533592&password=password&filecontent=C:\libs\test.txt" 

我不知道为什么心不是工作,它的东西做的filecontent参数,但我已阅读有关API的完整文档,我不能弄明白。

API文档

Answer 1:

请确保您使用的-Method Post第二调用-RestMethod调用参数/ ARG组合。 另外,看看这个SO回答关于使用curl类似的问题 。 看问题和答案后,似乎RapidShare的需要填充的POST表单字段。 在这种情况下,你需要指定-Body参数。 我认为,其中每个条目对应一个表单字段名称/值对你使用PowerShell的哈希表。 貌似需要的一个字段是filecontent场。 据推测,该值是该文件的内容。

此外,当您使用POST,你必须在转换GET查询参数POST表单字段,例如:

$url = "http://rs$FreeUploadServer.rapidshare.com/cgi-bin/rsapi.cgi"
$fields = @{sub='upload';login='43533592';password='password';filename='test.txt';
            filecontent=([IO.File]::ReadAllText('c:\libs\test.txt'))}

Invoke-RestMethod -Uri $url -Body $fields -Method Post

如果[IO.File]::ReadAlltext()不剪也许尝试[IO.File]::ReadAllBytes()来代替。



Answer 2:

原来存在这样说,如果你使用POST方法的所有参数需要在体内要通过的API文档一个微小的部分。 我写了上传到RapidShare的PowerShell中的功能,我希望这有助于人们对未来的事业,这是很烦人的。

function Upload-RapidShare([string]$File,[string]$Name)
{
     $FreeUploadServer = Invoke-RestMethod -Uri "http://api.rapidshare.com/cgi-bin/rsapi.cgi?sub=nextuploadserver"
     Invoke-RestMethod "http://rs$FreeUploadServer.rapidshare.com/cgi-bin/rsapi.cgi" -Body  "sub=upload&login=USERNAME&password=PASSWORD&filename=$Name&filecontent=$File" -Method Post
}


文章来源: Rapidshare API with PowerShell