@@ -233,13 +233,14 @@ func NewAPIRequest(r *Request, api string, args []string, isAsync bool) (map[str
233
233
requestURL := fmt .Sprintf ("%s?%s" , r .Config .ActiveProfile .URL , encodedParams )
234
234
config .Debug ("NewAPIRequest API request URL:" , requestURL )
235
235
236
- response , err := r .Client ().Get (requestURL )
237
- if err != nil {
236
+ var response * http.Response
237
+ response ,err = executeRequest (r , requestURL , params )
238
+ if (err != nil ) {
238
239
return nil , err
239
240
}
240
241
config .Debug ("NewAPIRequest response status code:" , response .StatusCode )
241
242
242
- if response != nil && response .StatusCode == http .StatusUnauthorized {
243
+ if response .StatusCode == http .StatusUnauthorized {
243
244
r .Client ().Jar , _ = cookiejar .New (nil )
244
245
sessionKey , err := Login (r )
245
246
if err != nil {
@@ -249,8 +250,9 @@ func NewAPIRequest(r *Request, api string, args []string, isAsync bool) (map[str
249
250
params .Add ("sessionkey" , sessionKey )
250
251
requestURL = fmt .Sprintf ("%s?%s" , r .Config .ActiveProfile .URL , encodeRequestParams (params ))
251
252
config .Debug ("NewAPIRequest API request URL:" , requestURL )
252
- response , err = r .Client ().Get (requestURL )
253
- if err != nil {
253
+
254
+ response ,err = executeRequest (r , requestURL , params )
255
+ if (err != nil ) {
254
256
return nil , err
255
257
}
256
258
}
@@ -277,3 +279,13 @@ func NewAPIRequest(r *Request, api string, args []string, isAsync bool) (map[str
277
279
278
280
return nil , errors .New ("failed to decode response" )
279
281
}
282
+
283
+ // we can implement further conditions to do POST or GET (or other http commands) here
284
+ func executeRequest (r * Request , requestURL string , params url.Values ) (* http.Response , error ){
285
+ if params .Has ("password" ) || params .Has ("userdata" ) {
286
+ requestURL = fmt .Sprintf ("%s" , r .Config .ActiveProfile .URL )
287
+ return r .Client ().PostForm (requestURL , params )
288
+ } else {
289
+ return r .Client ().Get (requestURL )
290
+ }
291
+ }
0 commit comments