5.1 :: Using WAPL with ASP

How to use isMobileDevice, getMobileDevice and getMarkupFromUrl


All ASP code generously donated by Alex Matthews - www.daredigital.com
  1.  <%@Language=VBScript%>
  2.  <%
  3.  
  4.  ' Get headers - have to have http_ and non-http_ headers passed in to the service
  5.  req = replace(request.servervariables("ALL_RAW"),vbcrlf,"|")
  6.  req = req & "HTTP_HOST:"&request.servervariables("HTTP_HOST")&"|"
  7.  req = req & "HTTP_USER_AGENT:"&request.servervariables("HTTP_USER_AGENT")&"|"
  8.  req = req & "HTTP_ACCEPT_CHARSET:"&request.servervariables("HTTP_ACCEPT_CHARSET")&"|"
  9.  req = req & "HTTP_ACCEPT_LANGUAGE:"&request.servervariables("HTTP_ACCEPT_LANGUAGE")&"|"
  10.  req = req & "HTTP_ACCEPT_ENCODING:"&request.servervariables("HTTP_ACCEPT_ENCODING")&"|"
  11.  req = req & "HTTP_REFERER:"&request.servervariables("HTTP_REFERER")&"|"
  12.  req = req & "HTTP_CACHE_CONTROL:"&request.servervariables("HTTP_CACHE_CONTROL")&"|"
  13.  req = req & "HTTP_CONNECTION:"&request.servervariables("HTTP_CONNECTION")&"|"
  14.  req = req & "HTTP_ACCEPT:"&request.servervariables("HTTP_ACCEPT")
  15.  
  16.  ' Set dev key
  17.  devKey = "YOUR-DEV-KEY-HERE"
  18.  
  19.  ' Set isDeviceMobile url
  20.  devmoburl = "http://webservices.wapple.net/isMobileDevice.php?headers="&req&"&devKey="&devKey
  21.  
  22.  ' Call isDeviceMobile
  23.  set oXMLHTTP = CreateObject("Msxml2.ServerXMLHTTP")
  24.  oXMLHTTP.Open "POST", devmoburl, false
  25.  oXMLHTTP.Send
  26.  statty = oXMLHTTP.status
  27.  resp = oXMLHTTP.responseText
  28.  set oXMLHTTP = nothing
  29.  
  30.  ' Set isDeviceMobile
  31.  isDeviceMobile = cint(resp)
  32.  
  33.  ' Call getMobileDevice
  34.  getmoburl = "http://webservices.wapple.net/getMobileDevice.php?headers="&req&"&devKey="&devKey
  35.  set oXMLHTTP = CreateObject("Msxml2.ServerXMLHTTP")
  36.  oXMLHTTP.Open "POST", getmoburl, false
  37.  oXMLHTTP.Send
  38.  statty = oXMLHTTP.status
  39.  mobdev = oXMLHTTP.responseText
  40.  set oXMLHTTP = nothing
  41.  
  42.  ' Load mobile device XML
  43.  Set objXMLDoc = CreateObject("Microsoft.XMLDOM")
  44.  objXMLDoc.async = False
  45.  if objXMLDoc.loadXML(mobdev) then
  46.   Set Root = objXMLDoc.documentElement
  47.   set manufacturer = root.selectSingleNode("./manufacturer")
  48.   manny = manufacturer.text&""
  49.   set model = root.selectSingleNode("./model")
  50.   modey = model.text&""
  51.  else
  52.   manny = "There was an error"
  53.   modey = "There was an error"
  54.  end if
  55.  set objXMLDoc = nothing
  56.  set root = nothing
  57.  set model = nothing
  58.  set manufacturer = nothing
  59.  
  60.  ' XML url
  61.  waplurl = "http://wapl.info/files/examples/asp/home.xml"
  62.  
  63.  ' Get the XML
  64.  set filesys = CreateObject("Scripting.FileSystemObject")
  65.  set readfile = filesys.OpenTextFile(server.mappath("home.xml"), 1, false)
  66.  wapl = readfile.ReadAll
  67.  readfile.close
  68.  set readfile = nothing
  69.  set filesys = nothing
  70.  
  71.  ' Do replacements (turn this into a function one day)
  72.  wapl = replace(wapl,"$$$isDeviceMobile$$$", isDeviceMobile)
  73.  wapl = replace(wapl,"$$$manufacturer$$$", manny)
  74.  wapl = replace(wapl,"$$$model$$$", modey)
  75.  
  76.  ' Set wapl url
  77.  wapltransformurl = "http://webservices.wapple.net/getMarkupFromWapl.php?headers="&req&"&devKey="&devKey&"&wapl="&server.urlencode(wapl)
  78.  
  79.  ' Get the transformed WAPL
  80.  set oXMLHTTP = CreateObject("Msxml2.ServerXMLHTTP")
  81.  oXMLHTTP.Open "POST", wapltransformurl, false
  82.  oXMLHTTP.Send
  83.  statty = oXMLHTTP.status
  84.  resp = oXMLHTTP.responseText
  85.  set oXMLHTTP = nothing
  86.  
  87.  ' Load the WAPL XML
  88.  Set objXMLDoc = CreateObject("Microsoft.XMLDOM")
  89.  objXMLDoc.async = False
  90.  if objXMLDoc.loadXML(resp) then
  91.   Set Root = objXMLDoc.documentElement
  92.   set markup = root.selectSingleNode("./markup")
  93.   marky = markup.text
  94.  else
  95.   marky = "There was an error"
  96.  end if
  97.  set objXMLDoc = nothing
  98.  set root = nothing
  99.  set markup = nothing
  100.  
  101.  ' Write out the markup
  102.  response.write(marky)
  103.  %>
Downloadlisting 5.1.a

Contents