diff --git a/webservice.go b/webservice.go
index 47d750d..2195a09 100644
--- a/webservice.go
+++ b/webservice.go
@@ -72,6 +72,13 @@
 	}
 }
 
+func (r *ServiceResponse) GetInterfaceValue(name string) interface{} {
+	if s, ok := r.Result[name]; ok {
+		return s
+	} else {
+		return nil
+	}
+}
 func (r *ServiceResponse) GetFloatValue(name string) float64 {
 	if s, ok := r.Result[name]; ok {
 		t := fmt.Sprintf("%v", s)
@@ -253,10 +260,14 @@
 	if r != nil {
 		defer r.Body.Close()
 	}
-	if err != nil || r.StatusCode != 200 {
-		log.Errorf(" err = %v\n", err)
+	if err != nil {
+		log.Errorf("err = %v\n", err)
 		return err
 	}
+	if r.StatusCode != 200 {
+		log.Errorf(" errcode = %v\n", r.StatusCode)
+		return errors.New(fmt.Sprintf("code %v", r.StatusCode))
+	}
 
 	body, err := ioutil.ReadAll(r.Body)
 
@@ -264,6 +275,7 @@
 	err = json.Unmarshal(body, &s)
 	if err != nil {
 		log.Errorf("json unmarshal err %v", err)
+		return err
 	}
 	w.session_key = s.SessionKey
 	return nil
