Hej
Jag skickar ett HTTP POST-kommando i en virtuell enhet som går igenom som det ska. Jag får koden 303 som respons vilket jag läst mig till ska vara en "redirect" till en annan sida som ska ge aktuell status som svar.
Jag har förstått att det ska gå att läsa av URL:en till den nya statussidan via ett GET-kommando men jag får inte till det. Jag vet inte om jag kanske måste skicka med någon header och inte heller hur det ska göras i så fall. Är det någon som vet hur man hanterar 303 och hämtar URL:en som skickas med? Jag tror även att 301 och 302 fungerar på ett liknande sätt.
Hämta svar från HTTP POST
Jag gör ett sista försök för att se om någon kan hjälpa mig
Bakgrund: Jag har en ePowerSwitch-4 (nätverksanslutet grenuttag) som har en inbyggd webbserver. Det finns ett färdigt gränssnitt att logga in på men jag försöker styra grenuttaget via min HC2. Till min hjälp har jag ett dokument som beskriver olika kommandon som går att skicka. Dokumentet finns här: http://www.leunig.de/_pro/downloads/ePo ... CMD_EN.pdf
I övrigt finns det väldigt lite information att hitta. Jag har googlat lite och bl.a. hittat några python-skript men de har inte gett mig så mycket klarhet i detta.
Framsteg: Jag har kommit så långt att jag kan slå av/på de fyra uttagen. Jag har lagt in koden i en virtuell enhet. Exempel på kod för att aktivera uttag 1 finns nedan:
Kör jag koden får jag följande i debug-fönstret: [DEBUG] 13:33:28: , 303
I dokumentet med kommandon som jag länkade till ovan så står det att man ska få tillbaka en bekräftelse på att uttaget slogs av eller på. Bekräftelsen ska ges via en ny länk som skickas tillbaka som svar (av det jag läst). Det är förmodligen det som 303 syftar på, men jag vet inte hur jag ska hämta in svaret.
Problem/frågor: Hur läser jag det som skickas tillbaka efter att jag ändrat något av uttagens status? Att bara få 303 till svar ger inte så mycket. Behöver jag sända ett GET-kommando?
Hur kan jag när som helst kontrollera vilken status de olika uttagen har? Någon som har en idé?
All hjälp eller tips mottages gärna.
Bakgrund: Jag har en ePowerSwitch-4 (nätverksanslutet grenuttag) som har en inbyggd webbserver. Det finns ett färdigt gränssnitt att logga in på men jag försöker styra grenuttaget via min HC2. Till min hjälp har jag ett dokument som beskriver olika kommandon som går att skicka. Dokumentet finns här: http://www.leunig.de/_pro/downloads/ePo ... CMD_EN.pdf
I övrigt finns det väldigt lite information att hitta. Jag har googlat lite och bl.a. hittat några python-skript men de har inte gett mig så mycket klarhet i detta.
Framsteg: Jag har kommit så långt att jag kan slå av/på de fyra uttagen. Jag har lagt in koden i en virtuell enhet. Exempel på kod för att aktivera uttag 1 finns nedan:
Code: Select all
EPS = Net.FHttp("192.168.0.202") -- IP till ePowerSwitch
EPS:setBasicAuthentication("admin","admin") -- Inloggningsuppgifter
-- Skicka POST-kommando för ON
response, status, errorCode = EPS:POST("/cmd.html", "P1=1")
if errorCode == 0
then
fibaro:debug(response..", "..status);
else
fibaro:debug("error");
end
I dokumentet med kommandon som jag länkade till ovan så står det att man ska få tillbaka en bekräftelse på att uttaget slogs av eller på. Bekräftelsen ska ges via en ny länk som skickas tillbaka som svar (av det jag läst). Det är förmodligen det som 303 syftar på, men jag vet inte hur jag ska hämta in svaret.
Problem/frågor: Hur läser jag det som skickas tillbaka efter att jag ändrat något av uttagens status? Att bara få 303 till svar ger inte så mycket. Behöver jag sända ett GET-kommando?
Hur kan jag när som helst kontrollera vilken status de olika uttagen har? Någon som har en idé?
All hjälp eller tips mottages gärna.
Gammal tråd, bättra att försöka väcka liv i denna istället för att skapa ny.
Kan liksom trådskaparen inte lyckas läsa svaret. Får upp Error när jag kör Debug men inget därefter. Någon där ute som kan ge råd?
Kan liksom trådskaparen inte lyckas läsa svaret. Får upp Error när jag kör Debug men inget därefter. Någon där ute som kan ge råd?
Code: Select all
HC2 = Net.FHttp("xxx.xxx.x.xxx", xx);
getResponse, status, errorCode = HC2:GET("/xxxx/");
if tonumber(status) == 200 -- Command accepted
then
fibaro:debug("Svar: " .. getResponse)
else
fibaro:debug("Error: "..status)
fibaro:sleep(10000)
end