Rapidshare-API mit PowerShell
$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"
Ich habe keine Ahnung, warum das nicht funktioniert, Ihr etwas zu tun mit der filecontent parameter, aber ich habe gelesen, die gesamte Dokumentation über die API und ich kann nicht es herausfinden.
- In Fällen wie diesem, empfehle ich Ihnen das Fiddler web debugging proxy tool. Es kann Ihnen zeigen, was die PowerShell ist tatsächlich das senden und was wird die Antwort des Servers. fiddler2.com/fiddler2
- ich habe versucht, im gehend verrückt lol. Ich verwende normalerweise Charles Debuggen, aber ich habe sogar beschlossen, fiddler, ein Schuss und ich kann nicht es herausfinden.
- Was für eine Antwort wird der server zurück?
- FEHLER: es werden Keine Dateien übertragen. (f269d341) Sein ein rapid share spezifische Fehler, während Sie hier ich habe eine Frage an Euch, soll ich mich mit Invoke-WebRequest anstelle von Invoke-RestMethod? Was ist überhaupt der Unterschied, den Sie verwenden konnten ((Invoke-WebRequest "someendpoint").ParsedHTML.Körper | ConvertFrom-JSON), um die gleichen Ergebnisse wie die Invoke-RestMethod?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Stellen Sie sicher, dass Sie die
-Method Post
parameter/arg-combo auf dem zweiten Invoke-RestMethod nennen. Werfen Sie auch einen Blick auf diese ALSO Antwort auf eine ähnliche Frage über die Verwendung von CURL. Nach einem Blick auf die Frage und die Antwort, es scheint, dass RapidShare erfordert das ausfüllen von Formular-Feldern. In diesem Fall müssen Sie die-Body
parameter. Ich denke, du wirst mit einem PowerShell-Hashtabelle, in der jeder Eintrag entspricht einem Formular-Feld-Namen/Wert-paar. Sieht aus wie die ein Feld benötigt wird, ist derfilecontent
Feld. Vermutlich ist der Wert den Inhalt der Datei.Auch, wenn Sie POST verwenden, müssen Sie konvertieren Sie das
GET
Abfrage-Parameter anPOST
Formularfelder z.B.:Wenn
[IO.File]::ReadAlltext()
nicht schneiden Sie es vielleicht versuchen[IO.File]::ReadAllBytes()
statt.-Method Post
und verschieben der Get-query-Parameter unten in die Formularfelder, die Sie unten Stimmen meine Antwort. Scheint ein bisschen hart, es sei denn, die Antwort hat keinen erlösenden Wert. 🙂Stellt sich heraus, es ist ein winziger Abschnitt in der API-Dokumentation sagt, dass, wenn Sie verwenden die POST-Methode alle Parameter übergeben werden müssen in den Körper. Ich schrieb eine Funktion, die uploads auf RapidShare in PowerShell, ich hoffe, das hilft den Menschen in der Zukunft verursachen, das war SEHR ärgerlich.
filename=test.txt&sub=upload&password=password&login=43533592&filecontent=...