diff --git a/build.gradle b/build.gradle index 3ec9fd8..3c6564f 100644 --- a/build.gradle +++ b/build.gradle @@ -2,7 +2,7 @@ import java.time.ZonedDateTime import java.time.format.DateTimeFormatter plugins { - id "com.github.spotbugs" version "1.6.5" + id "com.github.spotbugs" version "1.6.9" id "org.sonarqube" version "2.6.1" id "io.codearte.nexus-staging" version "0.11.0" id "org.xbib.gradle.plugin.asciidoctor" version "1.5.6.0.1" diff --git a/gradle.properties b/gradle.properties index 7cc703c..1e80191 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,11 +1,11 @@ group = org.xbib name = netty-http -version = 4.1.32.0 +version = 4.1.33.0 -netty.version = 4.1.32.Final +netty.version = 4.1.33.Final tcnative.version = 2.0.20.Final bouncycastle.version = 1.60 -xbib-net-url.version = 1.1.3 +xbib-net-url.version = 1.2.1 alpnagent.version = 2.0.9 # tests /docs @@ -14,3 +14,5 @@ conscrypt.version = 1.0.1 jackson.version = 2.8.11.1 wagon.version = 3.0.0 asciidoclet.version = 1.5.4 + +org.gradle.warning.mode=all \ No newline at end of file diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index 29953ea..87b738c 100644 Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index bfb8348..84487a7 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Tue Nov 13 10:38:26 CET 2018 +#Tue Feb 05 16:02:21 CET 2019 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.2-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-5.1-all.zip diff --git a/gradlew b/gradlew index cccdd3d..af6708f 100755 --- a/gradlew +++ b/gradlew @@ -28,7 +28,7 @@ APP_NAME="Gradle" APP_BASE_NAME=`basename "$0"` # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS="" +DEFAULT_JVM_OPTS='"-Xmx64m"' # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD="maximum" diff --git a/gradlew.bat b/gradlew.bat index e95643d..0f8d593 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -14,7 +14,7 @@ set APP_BASE_NAME=%~n0 set APP_HOME=%DIRNAME% @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -set DEFAULT_JVM_OPTS= +set DEFAULT_JVM_OPTS="-Xmx64m" @rem Find java.exe if defined JAVA_HOME goto findJavaFromJavaHome diff --git a/netty-http-client/src/main/java/org/xbib/netty/http/client/RequestBuilder.java b/netty-http-client/src/main/java/org/xbib/netty/http/client/RequestBuilder.java index 95da7e4..665df93 100644 --- a/netty-http-client/src/main/java/org/xbib/netty/http/client/RequestBuilder.java +++ b/netty-http-client/src/main/java/org/xbib/netty/http/client/RequestBuilder.java @@ -14,13 +14,14 @@ import io.netty.handler.codec.http.QueryStringEncoder; import io.netty.handler.codec.http.cookie.Cookie; import io.netty.handler.codec.http2.HttpConversionUtil; import io.netty.util.AsciiString; +import org.xbib.net.PercentEncoder; +import org.xbib.net.PercentEncoders; import org.xbib.net.QueryParameters; import org.xbib.net.URL; import org.xbib.net.URLSyntaxException; import org.xbib.netty.http.client.retry.BackOff; import org.xbib.netty.http.common.HttpAddress; -import java.net.MalformedURLException; import java.net.URI; import java.nio.charset.MalformedInputException; import java.nio.charset.StandardCharsets; @@ -62,6 +63,8 @@ public class RequestBuilder { private final Collection cookies; + private final PercentEncoder encoder; + private HttpMethod httpMethod; private HttpHeaders headers; @@ -106,6 +109,7 @@ public class RequestBuilder { headers = new DefaultHttpHeaders(); removeHeaders = new ArrayList<>(); cookies = new HashSet<>(); + encoder = PercentEncoders.getQueryEncoder(StandardCharsets.UTF_8); queryParameters = new QueryParameters(); } @@ -185,7 +189,11 @@ public class RequestBuilder { public RequestBuilder addParameter(String name, String value) { if (queryParameters != null) { - queryParameters.add(name, value); + try { + queryParameters.add(name, encoder.encode(value)); + } catch (MalformedInputException | UnmappableCharacterException e) { + throw new IllegalArgumentException(e); + } } return this; } diff --git a/netty-http-client/src/test/java/org/xbib/netty/http/client/test/XbibTest.java b/netty-http-client/src/test/java/org/xbib/netty/http/client/test/XbibTest.java index 5c3b2a8..88c76ff 100644 --- a/netty-http-client/src/test/java/org/xbib/netty/http/client/test/XbibTest.java +++ b/netty-http-client/src/test/java/org/xbib/netty/http/client/test/XbibTest.java @@ -51,7 +51,7 @@ public class XbibTest extends TestBase { try { return httpClient.execute(Request.post() .url("http://google.de") - .addParameter("query", content) + .addParameter("query", content.substring(0, 15)) .build(), httpResponseStringFunction); } catch (IOException e) { logger.log(Level.WARNING, e.getMessage(), e);