Page 1 of 1
Hoe doe ik een "post" in .vb?
Posted: Tue Aug 24, 2010 11:09 pm
by Noel
Iemand hier die misschien weet hoe ik dmv een vb script de volgende gegevens kan posten?
Code: Select all
http://de_url.tld/meteo.php?windrichting=330&windsnelheid=22&watertemperatuur=16
Het "meteo.php" stukje is geen probleem.
De gegevens (bv. 330, 22 en 16) zjn ook geen probleem in de .vb file.
Ik weet helaas niet hoe ik de "post" alles in .vb moet doen.
Het is iets van "WebRequest.Create(url)" denk ik.
Re: Hoe doe ik een "post" in .vb?
Posted: Wed Aug 25, 2010 1:33 am
by Mdamen
Dit kun je zo doen:
Code: Select all
sUrl = "http://de_url.tld/meteo.php"
sRequest = "windrichting=" & iWindrichting & Chr(38) & "windsnelheid=" & iWindsnelheid & Chr(38) & "watertemperatuur=" iWatertemperatuur
HTTPPost sUrl, sRequest
Function HTTPPost(sUrl, sRequest)
set oHTTP = CreateObject("Microsoft.XMLHTTP")
oHTTP.open "POST", sUrl,false
oHTTP.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
oHTTP.setRequestHeader "Content-Length", Len(sRequest)
oHTTP.send sRequest
HTTPPost = oHTTP.responseText
End Function
Re: Hoe doe ik een "post" in .vb?
Posted: Wed Aug 25, 2010 8:18 am
by Noel
Hallo Mdamen,
Ziet er goed uit, maar helaas werkt het weer eens niet bij mij.
Ik heb even als test de code in een .vb gezet, en dmv een event uitgevoerd.
Code: Select all
const iWindrichting = "360"
const iWindsnelheid = "22"
const iWatertemperatuur = "24"
sUrl = "http://de_url.tld/receive.php"
sRequest = "windrichting=" & iWindrichting & Chr(38) & "windsnelheid=" & iWindsnelheid & Chr(38) & "watertemperatuur=" iWatertemperatuur
HTTPPost sUrl, sRequest
Function HTTPPost(sUrl, sRequest)
set oHTTP = CreateObject("Microsoft.XMLHTTP")
oHTTP.open "POST", sUrl,false
oHTTP.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
oHTTP.setRequestHeader "Content-Length", Len(sRequest)
oHTTP.send sRequest
HTTPPost = oHTTP.responseText
End Function
De fout die ik krijg is:
Code: Select all
8/25/2010 8:07:53 AM Error Script compile error: Declaratie wordt verwacht.on line 18
Code: Select all
8/25/2010 8:07:53 AM SCR Option Strict Offimports Schedulerimports SystemPublic Module scriptcode29#Region "Automatically generated code, do not modify"'Automatically generated code, do not modify'Event Sources Begin Public WithEvents hs As Scheduler.hsapplication Public WithEvents hsp As scheduler.hsp Public WithEvents hssystem As scheduler.phone0'Event Sources End'End of automatically generated code#End Regionconst iWindrichting = "360"const iWindsnelheid = "22"const iWatertemperatuur = "24"sUrl = "http://de_url.tld/receive.php"sRequest = "windrichting=" & iWindrichting & Chr(38) & "windsnelheid=" & iWindsnelheid & Chr(38) & "watertemperatuur=" iWatertemperatuurHTTPPost sUrl, sRequestFunction HTTPPost(sUrl, sRequest) set oHTTP = CreateObject("Microsoft.XMLHTTP") oHTTP.open "POST", sUrl,false oHTTP.setRequestHeader "Content-Type", "application/x-www-form-urlencoded" oHTTP.setRequestHeader "Content-Length", Len(sRequest) oHTTP.send sRequest HTTPPost = oHTTP.responseTextEnd FunctionEnd Module
Re: Hoe doe ik een "post" in .vb?
Posted: Wed Aug 25, 2010 9:49 am
by Mdamen
Ik ben geen homeseer gebruiker, maar was het niet zo dat vbscript in een .txt gezet moet worden en niet in een .vb? De code wordt nu wellicht geherinterpreteerd als vb.net code i.p.v. vbscript.
Anders kan het nog zijn dat de code met "Option Explicit" wordt uitgevoerd, in dat geval moet je misschien de variabelen nog van de voren declareren:
Code: Select all
Dim iWindrichting, iWindsnelheid, iWatertemperatuur, sUrl, sRequest
const iWindrichting = "360"
const iWindsnelheid = "22"
const iWatertemperatuur = "24"
sUrl = "http://de_url.tld/receive.php"
sRequest = "windrichting=" & iWindrichting & Chr(38) & "windsnelheid=" & iWindsnelheid & Chr(38) & "watertemperatuur=" iWatertemperatuur
HTTPPost sUrl, sRequest
Function HTTPPost(sUrl, sRequest)
Dim oHTTP
set oHTTP = CreateObject("Microsoft.XMLHTTP")
oHTTP.open "POST", sUrl,false
oHTTP.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
oHTTP.setRequestHeader "Content-Length", Len(sRequest)
oHTTP.send sRequest
HTTPPost = oHTTP.responseText
End Function
Re: Hoe doe ik een "post" in .vb?
Posted: Wed Aug 25, 2010 10:05 am
by Alexander
Re: Hoe doe ik een "post" in .vb?
Posted: Wed Aug 25, 2010 10:09 am
by Noel
Hmmm no luck met .txt of .vb
Wat een gedoe voor zoiets simpels.
Re: Hoe doe ik een "post" in .vb?
Posted: Wed Aug 25, 2010 10:17 am
by Mdamen
Ah, wat Alexander aangeeft:
http://www.homeseer.com/support/homesee ... action.htm
Code: Select all
dim s
const server_url = "http://someserver.com/datapost/hereitis.html"
const headers="Content-Type: application/x-www-form-urlencoded"
s = hs.URLAction(server_url, "POST", data, headers)
De data variabele kun je dan vullen met een zelfde request string zoals ik eerder heb aangegeven...
Re: Hoe doe ik een "post" in .vb?
Posted: Wed Aug 25, 2010 11:03 am
by Noel
call me stupid, maar ik krijg het echt niet aan het werk.
Re: Hoe doe ik een "post" in .vb?
Posted: Wed Aug 25, 2010 11:05 am
by Mdamen
Wat is het probleem? Welke error krijg je?
Re: Hoe doe ik een "post" in .vb?
Posted: Wed Aug 25, 2010 11:19 am
by Noel
Ik heb het project even opzij gezet omdat ik er niet uit kwam (steeds maar #^&@%#&^%@!#& errors)
Weet niet meer wat de laatste fout melding was (ik maak de logile steeds schoon).
Ik zal het later vandaag nog eens gaan testen.
Re: Hoe doe ik een "post" in .vb?
Posted: Wed Aug 25, 2010 12:51 pm
by Noel
Ok.. Ben er uit..
Code: Select all
Imports System.IO
Imports System.Net
Imports System.Text
const winddirection ="\41"
const windspeed ="\42"
const temp ="\46"
Sub Main(parm as object)
Dim request As HttpWebRequest = _
WebRequest.Create("http://de_url.tld/receive.php?windrichting=" & CStr(hs.DeviceValue(winddirection) / 100).Replace(",",".") & " graden.&windsnelheid=" & CStr(hs.DeviceValue(windspeed) / 10).Replace(",",".") & "kmh.&watertemperatuur=" & CStr(hs.DeviceValue(temp) / 10).Replace(",", ".") & "C.")
request.Method = "POST"
request.ContentType = "application/x-www-form-urlencoded"
Dim response As WebResponse = request.GetResponse()
End Sub
Re: Hoe doe ik een "post" in .vb?
Posted: Wed Aug 25, 2010 1:52 pm
by Alexander
Ik durf het bijna niet te zeggen, maar doe het toch
Gebruik die binnen homeseer. Scheelt je ook weer onnodige imports en resource gebruik.
Re: Hoe doe ik een "post" in .vb?
Posted: Wed Aug 25, 2010 3:32 pm
by Noel
Snap hem niet helemaal, maar denk dat binnen in dit geval niet kan.
Ik gebruik het om een"flash" file te updaten die op een webstite staat.
Zie
http://bit.ly/adtWYK