1313import java .io .IOException ;
1414import java .io .InputStream ;
1515import java .io .InputStreamReader ;
16+ import java .io .UnsupportedEncodingException ;
17+ import java .net .URLEncoder ;
1618import java .util .ArrayList ;
1719import java .util .Arrays ;
1820import java .util .List ;
@@ -323,20 +325,7 @@ public boolean postComment(int rantId, String comment) {
323325 * @return A {@link JsonObject} containing the response.
324326 */
325327 JsonObject post (String url , NameValuePair ... params ) {
326- List <NameValuePair > paramList = new ArrayList <>(params .length + 5 );
327- paramList .addAll (Arrays .asList (params ));
328-
329- // Add the parameters which always need to be present.
330- paramList .add (new BasicNameValuePair ("app" , APP_ID ));
331- paramList .add (new BasicNameValuePair ("plat" , PLAT_ID ));
332-
333- // Add the auth information.
334- if (isLoggedIn ()) {
335- paramList .add (new BasicNameValuePair ("token_id" , auth .getId ()));
336- paramList .add (new BasicNameValuePair ("token_key" , auth .getKey ()));
337- paramList .add (new BasicNameValuePair ("user_id" , auth .getUserId ()));
338- }
339-
328+ List <NameValuePair > paramList = getParameters (params );
340329 return executeRequest (Request .Post (BASE_URL + url ).bodyForm (paramList ));
341330 }
342331
@@ -347,17 +336,43 @@ JsonObject post(String url, NameValuePair... params) {
347336 * @return A {@link JsonObject} containing the response.
348337 */
349338 JsonObject get (String url , NameValuePair ... params ) {
350- StringBuilder finalUrl = new StringBuilder (url ).append ("?app=" ).append (APP_ID ).append ("&plat=" ).append (PLAT_ID );
339+ StringBuilder finalUrl = new StringBuilder (url ).append ('?' );
340+ List <NameValuePair > paramList = getParameters (params );
351341
352342 // Add all parameters.
353- for (NameValuePair param : params )
354- finalUrl .append ('&' ).append (param .getName ()).append ('=' ).append (param .getValue ());
343+ try {
344+ for (NameValuePair param : paramList )
345+ finalUrl .append ('&' ).append (param .getName ()).append ('=' ).append (URLEncoder .encode (param .getValue (), "UTF-8" ));
346+ } catch (UnsupportedEncodingException e ) {
347+ // This never happens.
348+ e .printStackTrace ();
349+ }
350+
351+ return executeRequest (Request .Get (BASE_URL + finalUrl .toString ()));
352+ }
353+
354+ /**
355+ * Get a list with all the parameters, including default and auth parameters.
356+ *
357+ * @param params The parameters to use.
358+ * @return A list containing the given parameters, the default parameters, and the auth parameters.
359+ */
360+ private List <NameValuePair > getParameters (NameValuePair ... params ) {
361+ List <NameValuePair > paramList = new ArrayList <>(params .length + 5 );
362+ paramList .addAll (Arrays .asList (params ));
363+
364+ // Add the parameters which always need to be present.
365+ paramList .add (new BasicNameValuePair ("app" , APP_ID ));
366+ paramList .add (new BasicNameValuePair ("plat" , PLAT_ID ));
355367
356368 // Add the auth information.
357- if (isLoggedIn ())
358- finalUrl .append ("&token_id=" ).append (auth .getId ()).append ("&token_key=" ).append (auth .getKey ()).append ("&user_id=" ).append (auth .getUserId ());
369+ if (isLoggedIn ()) {
370+ paramList .add (new BasicNameValuePair ("token_id" , auth .getId ()));
371+ paramList .add (new BasicNameValuePair ("token_key" , auth .getKey ()));
372+ paramList .add (new BasicNameValuePair ("user_id" , auth .getUserId ()));
373+ }
359374
360- return executeRequest ( Request . Get ( BASE_URL + finalUrl . toString ())) ;
375+ return paramList ;
361376 }
362377
363378 /**
0 commit comments