add support for POST method in CloudMonkey
diff --git a/cmd/network.go b/cmd/network.go
index a3fb9e3..ff306c1 100644
--- a/cmd/network.go
+++ b/cmd/network.go
@@ -227,13 +227,22 @@
 	requestURL := fmt.Sprintf("%s?%s", r.Config.ActiveProfile.URL, encodedParams)
 	config.Debug("NewAPIRequest API request URL:", requestURL)
 
-	response, err := r.Client().Get(requestURL)
-	if err != nil {
-		return nil, err
+	var response *http.Response
+	if params.Has("password") || params.Has("userdata") {
+		requestURL = fmt.Sprintf("%s", r.Config.ActiveProfile.URL)
+		response, err = r.Client().PostForm(requestURL, params)
+		if err != nil {
+			return nil, err
+		}
+	} else {
+		response, err = r.Client().Get(requestURL)
+		if err != nil {
+			return nil, err
+		}
 	}
 	config.Debug("NewAPIRequest response status code:", response.StatusCode)
 
-	if response != nil && response.StatusCode == http.StatusUnauthorized {
+	if response.StatusCode == http.StatusUnauthorized {
 		r.Client().Jar, _ = cookiejar.New(nil)
 		sessionKey, err := Login(r)
 		if err != nil {
@@ -243,9 +252,18 @@
 		params.Add("sessionkey", sessionKey)
 		requestURL = fmt.Sprintf("%s?%s", r.Config.ActiveProfile.URL, encodeRequestParams(params))
 		config.Debug("NewAPIRequest API request URL:", requestURL)
-		response, err = r.Client().Get(requestURL)
-		if err != nil {
-			return nil, err
+
+		if params.Has("password") || params.Has("userdata") {
+			requestURL = fmt.Sprintf("%s", r.Config.ActiveProfile.URL)
+			response, err = r.Client().PostForm(requestURL, params)
+			if err != nil {
+				return nil, err
+			}
+		} else {
+			response, err = r.Client().Get(requestURL)
+			if err != nil {
+				return nil, err
+			}
 		}
 	}