HTTP POST call per batch senden

HeavensBlade

Ensign
Registriert
Feb. 2007
Beiträge
148
Hallo zusammen,
ich habe einen Server, dem ich gern bei gewissen events (Win boot, etc.) einen http post call schicken würde.
Nun habe ich einige Möglichkeiten, das über ein GUI zu machen, was aber nicht der Sinn der Sache ist.
Ich nutze z.B. die Chrome Erweiterung Postman um
Code:
http://192.168.178.52:8000/macros/toggle_light/1,2,3
zu senden.
Mit Wfetch klappt das ganze Spiel auch. (Kann man das vllt. von der Konsole aus bedienen?)

Leider habe ich keine Ahnung, wie ich das ganze per Script senden kann. (Username und Passwort brauch ich da auch)

Habe curl, wget und httpie ausprobiert, oder es versucht, aber nichts hat funktioniert.
Jemand eine Idee?

Gruß André
 
Was hat denn mit curl oder httpie nicht funktioniert? Schwierig ist doch das Triggern des Aufrufs bei einem Event und nicht der Befehl selbst. Beim Systemstart ist es noch einfach, da kann man den Autostart nutzen. Was hast du denn sonst noch für Events, die du nutzen möchtest?

Code:
$ curl http://192.168.178.52:8000/macros/toggle_light/1,2,3
 
vielleicht kommst mit wget weiter, das kann recht viel und das gibts als Linux (natürlich) und auch als Windows Version und ist komplett per Konsole steuerbar.

Edit:
Gerade nochmals gelesen, mit wget hast ja schon probiert. Was genau klappt denn nicht?
 
Ich bin gerade nicht zu hause, aber ich glaube der hat trotz der korrekten userdaten error 401 ausgespuckt
 
Das liegt dann aber nicht an curl, wget oder httpie sondern du musst dich korrekt authentifizieren.
Da würde ich mal in die Dokumentation deiner API gucken, wie das funktioniert. Ob die Parameter per POST oder GET erwartet werden oder ob Cookies benutzt werden.....
 
Zuletzt bearbeitet:
vielleicht sagst Du uns auch noch was für ein Server das das ist und wie die Authentifizierung dort umgesetzt ist so wie es Troublegum auch vorschlägt.
 
Hmm, das mit dem Server scheint nicht so einfach zu sein: https://code.google.com/p/webiopi/

Ich habe jetzt mal geschaut, was der Server bei der connection ausspuckt.
Code:
curl http://192.168.178.52:8000/macros/toggle_light/1,2,3

macht einen GET call.
Wenn ich jetzt also einen Befehl eingebe, den der Server als GET erwartet, erhalte ich was ich möchte.

Ich benötige aber einen POST call.
Jemand ne Idee?
Ergänzung ()

Ok, habs raus.
Code:
curl.exe --data 1 http://192.168.178.48:8000/GPIO/17/value/0

Ich war die ganze Zeit etwas verwirrt, was ich als data eingeben sollte.
In meinem Fall ist dem Server egal was da ankommt, der reagiert nur auf den aufgerufenen link.

Vielen Dank für die Hilfestellung!
 
Zuletzt bearbeitet:
Zurück
Oben