Ich versuche, ein Powershell-Äquivalent für dieses Python-Code zu machen:Powershell-Äquivalent für Python requests.post mit beiden Daten und Dateien
import requests
requests.post('http://someCKANsite/api/action/resource_create',
data={"package_id":"my_dataset"},
headers={"X-CKAN-API-Key": "21a47217-6d7b-49c5-88f9-72ebd5a4d4bb"},
files=[('upload', file('/path/to/file/to/upload.csv'))])
ich versucht habe:
Invoke-WebRequest -Method Post -Uri http://someCKANsite/api/action/resource_create -Headers $headers -InFile $myfile -Body $rcbody -ContentType "multipart/form-data"
... mit $headers
enthält meine X-CKAN-API-Key
und $rcbody
enthält die package_id
. Aber ich bekomme den Fehler Invoke-WebRequest : The cmdlet cannot run because the following conflicting parameters are specified: Body and InFile. Specify either Body or Infile, then retry.
Ich habe versucht, setzen ?package_id=...
am Ende des Uri, aber das funktioniert nicht. Ich habe alle möglichen Kombinationen in der Advanced REST client
ausprobiert, aber auch ohne Erfolg. Ich habe auch versucht Invoke-RestMethod
, aber es hat die gleichen Probleme.
Ich habe ein wenig Mühe zu sehen, ob die Datei ordnungsgemäß hochgeladen wird. Ich erhalte vom REST-Client ein Ergebnis von 200, aber in PowerShell erhalte ich einen 500-Fehler. Und selbst nach 200 vom REST-Client scheint die Datei nicht korrekt hochgeladen zu sein. Ich benutze jetzt die Option "resource_update", aber selbst Python macht mich verrückt ... –