2016-12-02 16:59:04 +01:00
|
|
|
/**
|
|
|
|
*
|
|
|
|
*/
|
2018-11-06 14:43:47 +01:00
|
|
|
package org.gcube.datatransfer.resolver.util;
|
2016-12-02 16:59:04 +01:00
|
|
|
|
|
|
|
import java.io.UnsupportedEncodingException;
|
|
|
|
import java.net.URLEncoder;
|
|
|
|
import java.util.Map;
|
|
|
|
|
|
|
|
import org.apache.log4j.Logger;
|
|
|
|
|
|
|
|
|
2016-12-20 12:11:35 +01:00
|
|
|
|
2016-12-02 16:59:04 +01:00
|
|
|
/**
|
|
|
|
* The Class UrlEncoderUtil.
|
|
|
|
*
|
|
|
|
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
|
2016-12-20 12:11:35 +01:00
|
|
|
* Dec 20, 2016
|
2016-12-02 16:59:04 +01:00
|
|
|
*/
|
|
|
|
public class UrlEncoderUtil {
|
|
|
|
|
|
|
|
public static String charset = "UTF-8";
|
|
|
|
public static Logger logger = Logger.getLogger(UrlEncoderUtil.class);
|
|
|
|
|
2016-12-20 12:11:35 +01:00
|
|
|
|
2016-12-02 16:59:04 +01:00
|
|
|
/**
|
|
|
|
* Encode query.
|
|
|
|
*
|
|
|
|
* @param parameters the parameters
|
|
|
|
* @return the string
|
|
|
|
*/
|
|
|
|
public static String encodeQuery(String... parameters){
|
|
|
|
|
|
|
|
String query = "";
|
2016-12-20 12:11:35 +01:00
|
|
|
for (int i = 0; i < parameters.length-1; i++) {
|
2016-12-02 16:59:04 +01:00
|
|
|
try {
|
2016-12-20 12:11:35 +01:00
|
|
|
query+=URLEncoder.encode(parameters[i], charset)+"%26";
|
2016-12-02 16:59:04 +01:00
|
|
|
} catch (UnsupportedEncodingException e) {
|
|
|
|
logger.error(e);
|
|
|
|
return query;
|
|
|
|
}
|
2016-12-20 12:11:35 +01:00
|
|
|
}
|
2016-12-02 16:59:04 +01:00
|
|
|
|
2016-12-20 12:11:35 +01:00
|
|
|
try {
|
|
|
|
query+=URLEncoder.encode(parameters[parameters.length-1], charset);
|
|
|
|
} catch (UnsupportedEncodingException e) {
|
|
|
|
logger.error(e);
|
|
|
|
return query;
|
2016-12-02 16:59:04 +01:00
|
|
|
}
|
2016-12-20 12:11:35 +01:00
|
|
|
|
|
|
|
return query;
|
2016-12-02 16:59:04 +01:00
|
|
|
}
|
|
|
|
|
2016-12-20 12:11:35 +01:00
|
|
|
|
2016-12-02 16:59:04 +01:00
|
|
|
/**
|
2016-12-20 12:11:35 +01:00
|
|
|
* Encode parameters.
|
2016-12-02 16:59:04 +01:00
|
|
|
*
|
|
|
|
* @param parameters the parameters
|
|
|
|
* @return the string
|
|
|
|
*/
|
2016-12-20 12:11:35 +01:00
|
|
|
public static String encodeParameters(Map<String, String> parameters){
|
2016-12-02 16:59:04 +01:00
|
|
|
|
|
|
|
String query = "";
|
|
|
|
|
|
|
|
if(parameters==null)
|
|
|
|
return query;
|
|
|
|
|
|
|
|
for (String key : parameters.keySet()) {
|
|
|
|
try {
|
|
|
|
query+=String.format(key+"=%s", URLEncoder.encode(parameters.get(key), charset))+"&";
|
|
|
|
} catch (UnsupportedEncodingException e) {
|
|
|
|
logger.error(e);
|
|
|
|
return query;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2018-11-30 12:51:17 +01:00
|
|
|
return Util.removeLastChar(query);
|
2016-12-02 16:59:04 +01:00
|
|
|
}
|
|
|
|
}
|