![]() |
|
http request - Printable Version +- LogicMachine Forum (https://forum.logicmachine.net) +-- Forum: LogicMachine eco-system (https://forum.logicmachine.net/forumdisplay.php?fid=1) +--- Forum: Scripting (https://forum.logicmachine.net/forumdisplay.php?fid=8) +--- Thread: http request (/showthread.php?tid=2296) |
http request - Angeles - 21.10.2019 Hi: I'm trying to extract data from Mitsubishi Web Server - SC-SL4 The data to request is: mensaje = ='<Packet> \r\n' .. <Command>getRequest</Command> \r\n' .. <AirConditioner> \r\n' .. <OpGroup GrNo="1" OnOff="*" Mode="*" ErrorStatus="*"></OpGroup>\r\n' .. </AirConditioner> \r\n' .. </Packet>\r\n' .. The server response 'error 400: syntax error This is my code: Content = string.len(mensaje) soap = '<?xml version="1.0" encoding="UTF-8"?>' -- http request reqs = 'POST /servlet/MIMEReceiveServlet.asp HTTP/1.1\r\n'.. 'Content-Type: text/xml\r\n'.. 'Content-Length: '..Content..'\r\n' .. '\r\n' .. soap..'\r\n' ..mensaje sock = socket.tcp() sock ettimeout(70)res, err = sock:connect(ip, port) log(res,err) if res then res, err = sock end(reqs)if res then log('send OK ') else log('send failed: ' .. tostring(err)) end else log('connect failed: ' .. tostring(err)) end res2, err2 = sock:receive("*a") sock:close() log(res2,err2) The result is nil. We have another installation with another server and LMReactor and it works perfectly. In this isntallation we have is with LMAmbient RE: http request - admin - 21.10.2019 Try this, your content-length header does not include initial XML line. Edit: you are missing Host and Connection headers. Code: data =
'<?xml version="1.0" encoding="UTF-8"?>\r\n' ..
'<Packet>\r\n' ..
'<Command>getRequest</Command>\r\n' ..
'<AirConditioner>\r\n' ..
'<OpGroup GrNo="1" OnOff="*" Mode="*" ErrorStatus="*"></OpGroup>\r\n' ..
'</AirConditioner>\r\n' ..
'</Packet>'
-- http request
reqs = 'POST /servlet/MIMEReceiveServlet.asp HTTP/1.1\r\n'..
'Content-Type: text/xml\r\n'..
'Host: ' .. ip .. '\r\n' ..
'Connection: close\r\n' ..
'Content-Length: '.. #data..'\r\n\r\n' ..
data
sock = socket.tcp()
sock:settimeout(70)
res, err = sock:connect(ip, port)
log(res,err)
if res then
res, err = sock:send(reqs)
if res then
log('send OK')
res2, err2 = sock:receive("*a")
sock:close()
log(res2,err2)
else
log('send failed: ' .. tostring(err))
end
else
log('connect failed: ' .. tostring(err))
endRE: http request - Angeles - 21.10.2019 sorry I know that it's necessary include the HOST with HTTP/1.1, I tried everything and I have transcribed it badly. The xml line is in soap variable. |