r388 - trunk/jredmine-client/src/main/java/org/nuiton/jredmine/client
Author: tchemit Date: 2012-10-26 18:23:37 +0200 (Fri, 26 Oct 2012) New Revision: 388 Url: http://nuiton.org/repositories/revision/jredmine/388 Log: fixes #2382: For post and put request prefer use parameters in a form rather than by url Modified: trunk/jredmine-client/src/main/java/org/nuiton/jredmine/client/RedmineClient.java Modified: trunk/jredmine-client/src/main/java/org/nuiton/jredmine/client/RedmineClient.java =================================================================== --- trunk/jredmine-client/src/main/java/org/nuiton/jredmine/client/RedmineClient.java 2012-10-26 16:06:28 UTC (rev 387) +++ trunk/jredmine-client/src/main/java/org/nuiton/jredmine/client/RedmineClient.java 2012-10-26 16:23:37 UTC (rev 388) @@ -25,19 +25,23 @@ */ import com.google.common.base.Preconditions; +import com.google.common.collect.Lists; import com.google.common.collect.Maps; import org.apache.commons.collections.MapUtils; import org.apache.commons.io.IOUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.http.HttpEntity; +import org.apache.http.HttpEntityEnclosingRequest; import org.apache.http.HttpHost; import org.apache.http.HttpResponse; import org.apache.http.HttpStatus; +import org.apache.http.NameValuePair; import org.apache.http.StatusLine; import org.apache.http.client.CookieStore; import org.apache.http.client.HttpClient; import org.apache.http.client.ResponseHandler; +import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.client.methods.HttpDelete; import org.apache.http.client.methods.HttpEntityEnclosingRequestBase; import org.apache.http.client.methods.HttpGet; @@ -51,6 +55,7 @@ import org.apache.http.entity.mime.content.StringBody; import org.apache.http.impl.client.BasicCookieStore; import org.apache.http.impl.client.DefaultHttpClient; +import org.apache.http.message.BasicNameValuePair; import org.apache.http.params.CoreProtocolPNames; import org.apache.http.protocol.BasicHttpContext; import org.apache.http.protocol.HttpContext; @@ -64,6 +69,7 @@ import java.io.InputStream; import java.net.URI; import java.net.URISyntaxException; +import java.util.List; import java.util.Map; /** @@ -367,7 +373,7 @@ if (MapUtils.isEmpty(attachments)) { // not a multi-part request - addParams(gm, parameters); + addParamsAsEntity(gm, parameters); } else { // multi-part request @@ -387,7 +393,7 @@ if (MapUtils.isEmpty(attachments)) { // not a multi-part request - addParams(gm, parameters); + addParamsAsEntity(gm, parameters); } else { @@ -426,7 +432,34 @@ } } + protected void addParamsAsEntity(HttpEntityEnclosingRequest gm, + Map<String, String> parameters) throws IOException { + if (MapUtils.isNotEmpty(parameters)) { + + // add parameters + + List<NameValuePair> params = Lists.newArrayList(); + + for (Map.Entry<String, String> entry : parameters.entrySet()) { + String key = entry.getKey(); + String value = entry.getValue(); + if (value == null) { + if (log.isDebugEnabled()) { + log.debug("skip null parameter " + key); + } + continue; + } + params.add(new BasicNameValuePair(key, value)); + } + + UrlEncodedFormEntity entity = new UrlEncodedFormEntity( + params, + configuration.getEncoding()); + gm.setEntity(entity); + } + } + protected void prepareMultiPart(HttpEntityEnclosingRequestBase gm, Map<String, File> attachments, Map<String, String> parameters) throws IOException {
participants (1)
-
tchemit@users.nuiton.org