From ed09ef1824144aa2cde37fd6566f2ea63a839c08 Mon Sep 17 00:00:00 2001 From: Collin Guarino Date: Sat, 23 Jan 2016 01:34:55 -0500 Subject: Debugging xml.Unmarshal not showing any data. --- bridge.go | 39 +++++++++++++++++++++++---------------- 1 file changed, 23 insertions(+), 16 deletions(-) (limited to 'bridge.go') diff --git a/bridge.go b/bridge.go index 172d370..f7a183b 100644 --- a/bridge.go +++ b/bridge.go @@ -9,7 +9,8 @@ import ( ) func main() { - log.Println("Test") + bridge := NewBridge("192.168.1.128") + log.Println(bridge.IPAddress) } type Bridge struct { @@ -19,15 +20,16 @@ type Bridge struct { } type BridgeInfo struct { - DeviceType string - FriendlyName string - ManufacturerURL string - ModelDescription string - ModelName string - ModelNumber string - ModelURL string - SerialNumber string - UDN string + DeviceType string `xml:"deviceType"` + FriendlyName string `xml:"friendlyName"` + Manufacturer string `xml:"manufacturer"` + ManufacturerURL string `xml:"manufacturerURL"` + ModelDescription string `xml:"modelDescription"` + ModelName string `xml:"modelName"` + ModelNumber string `xml:"modelNumber"` + ModelURL string `xml:"modelURL"` + SerialNumber string `xml:"serialNumber"` + UDN string `xml:"UDN"` } func NewBridge(ip string) *Bridge { @@ -37,31 +39,36 @@ func NewBridge(ip string) *Bridge { // TODO: other defaults here } - bridge.Info = GetBridgeInfo("192.168.1.128") // TODO: IP var + bridge.Info = GetBridgeInfo(bridge.IPAddress) // TODO: IP var return &bridge } // Go to http:///description.xml and parse the info func GetBridgeInfo(ip string) BridgeInfo { - response, error := http.Get(ip + "/description.xml") + response, error := http.Get("http://" + ip + "/description.xml") if response.StatusCode != 200 { log.Println("Bridge status error: %d", response.StatusCode) os.Exit(1) + } else if error != nil { + log.Println("Error: ", error) + os.Exit(1) } body, error := ioutil.ReadAll(response.Body) + defer response.Body.Close() if error != nil { log.Println("Error parsing bridge description XML") os.Exit(1) } - data := make(map[string]string) - error = xml.Unmarshal(body, data) + data := BridgeInfo{} + error = xml.Unmarshal(body, &data) if error != nil { log.Println("GetBridgeInfo error. Cannot parse data from description.") + log.Println(error) } - log.Println(data["FriendlyName"]) + log.Println(data) - return BridgeInfo{} // TODO: fill in + return data } -- cgit v1.2.3