[HtmlUnit] SVN: [15475] trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit
rbri--- via HtmlUnit-develop <[email protected]> Wed, 18 Jul 2018 06:15:27 +0000
| Newsgroups | gmane.comp.java.htmlunit.devel |
|---|---|
| Message-ID | <[email protected]> |
Revision: 15475
http://sourceforge.net/p/htmlunit/code/15475
Author: rbri
Date: 2018-07-18 06:15:19 +0000 (Wed, 18 Jul 2018)
Log Message:
-----------
next step in our endless encoding fight - back to the more explicit approach
Modified Paths:
--------------
trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/HttpWebConnection.java
trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/WebClient.java
trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/WebRequest.java
trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/html/HtmlAnchor.java
trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/html/HtmlLink.java
Modified: trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/HttpWebConnection.java
===================================================================
--- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/HttpWebConnection.java 2018-07-17 19:37:11 UTC (rev 15474)
+++ trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/HttpWebConnection.java 2018-07-18 06:15:19 UTC (rev 15475)
@@ -287,20 +287,17 @@
throws URISyntaxException {
final HttpContext httpContext = getHttpContext();
- final Charset encCharset = webRequest.getUrlEncodingCharset();
-
+ final Charset charset = webRequest.getCharset();
// Make sure that the URL is fully encoded. IE actually sends some Unicode chars in request
// URLs; because of this we allow some Unicode chars in URLs. However, at this point we're
// handing things over the HttpClient, and HttpClient will blow up if we leave these Unicode
// chars in the URL.
- final URL url = UrlUtils.encodeUrl(webRequest.getUrl(), false, encCharset);
+ final URL url = UrlUtils.encodeUrl(webRequest.getUrl(), false, charset);
URI uri = UrlUtils.toURI(url, escapeQuery(url.getQuery()));
if (getVirtualHost() != null) {
uri = URI.create(getVirtualHost());
}
-
- final Charset charset = webRequest.getCharset();
final HttpRequestBase httpMethod = buildHttpMethod(webRequest.getHttpMethod(), uri);
setProxy(httpMethod, webRequest);
@@ -309,7 +306,7 @@
if (!webRequest.getRequestParameters().isEmpty()) {
final List<NameValuePair> pairs = webRequest.getRequestParameters();
final org.apache.http.NameValuePair[] httpClientPairs = NameValuePair.toHttpClient(pairs);
- final String query = URLEncodedUtils.format(Arrays.asList(httpClientPairs), encCharset);
+ final String query = URLEncodedUtils.format(Arrays.asList(httpClientPairs), charset);
uri = UrlUtils.toURI(url, query);
httpMethod.setURI(uri);
}
Modified: trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/WebClient.java
===================================================================
--- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/WebClient.java 2018-07-17 19:37:11 UTC (rev 15474)
+++ trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/WebClient.java 2018-07-18 06:15:19 UTC (rev 15475)
@@ -36,6 +36,7 @@
import java.net.URLConnection;
import java.net.URLDecoder;
import java.nio.charset.Charset;
+import java.nio.charset.StandardCharsets;
import java.util.ArrayDeque;
import java.util.ArrayList;
import java.util.Collections;
@@ -461,6 +462,8 @@
@SuppressWarnings("unchecked")
public <P extends Page> P getPage(final URL url) throws IOException, FailingHttpStatusCodeException {
final WebRequest request = new WebRequest(url, getBrowserVersion().getHtmlAcceptHeader());
+ request.setCharset(StandardCharsets.UTF_8);
+
return (P) getPage(getCurrentWindow().getTopWindow(), request);
}
@@ -881,6 +884,7 @@
if (url != null) {
try {
final WebRequest request = new WebRequest(url, getBrowserVersion().getHtmlAcceptHeader());
+ request.setCharset(StandardCharsets.UTF_8);
if (getBrowserVersion().hasFeature(DIALOGWINDOW_REFERER)
&& openerPage != null) {
@@ -1012,6 +1016,7 @@
final HtmlPage openerPage = (HtmlPage) opener.getEnclosedPage();
final WebRequest request = new WebRequest(url, getBrowserVersion().getHtmlAcceptHeader());
+ request.setCharset(StandardCharsets.UTF_8);
if (getBrowserVersion().hasFeature(DIALOGWINDOW_REFERER) && openerPage != null) {
final String referer = openerPage.getUrl().toExternalForm();
@@ -1337,7 +1342,7 @@
WebAssert.notNull("parameters", parameters);
url = UrlUtils.encodeUrl(url, getBrowserVersion().hasFeature(URL_MINIMAL_QUERY_ENCODING),
- webRequest.getUrlEncodingCharset());
+ webRequest.getCharset());
webRequest.setUrl(url);
if (LOG.isDebugEnabled()) {
Modified: trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/WebRequest.java
===================================================================
--- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/WebRequest.java 2018-07-17 19:37:11 UTC (rev 15474)
+++ trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/WebRequest.java 2018-07-18 06:15:19 UTC (rev 15475)
@@ -23,7 +23,6 @@
import java.net.IDN;
import java.net.URL;
import java.nio.charset.Charset;
-import java.nio.charset.StandardCharsets;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
@@ -64,7 +63,6 @@
private Credentials urlCredentials_;
private Credentials credentials_;
private transient Charset charset_ = ISO_8859_1;
- private transient Charset urlEncodingCharset_;
/* These two are mutually exclusive; additionally, requestBody_ should only be set for POST requests. */
private List<NameValuePair> requestParameters_ = Collections.emptyList();
@@ -432,31 +430,6 @@
}
/**
- * @param charset the character set to use for url (param) encoding
- */
- public void setUrlEncodingCharset(final Charset charset) {
- urlEncodingCharset_ = charset;
- }
-
- /**
- * @return the character set to use to encode the url (params)
- */
- public Charset getUrlEncodingCharset() {
- if (urlEncodingCharset_ != null) {
- return urlEncodingCharset_;
- }
-
- if (HttpMethod.GET == getHttpMethod()
- || HttpMethod.DELETE == getHttpMethod()
- || HttpMethod.HEAD == getHttpMethod()
- || HttpMethod.OPTIONS == getHttpMethod()
- || HttpMethod.TRACE == getHttpMethod()) {
- return StandardCharsets.UTF_8;
- }
- return charset_;
- }
-
- /**
* Returns a string representation of this object.
* @return a string representation of this object
*/
Modified: trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/html/HtmlAnchor.java
===================================================================
--- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/html/HtmlAnchor.java 2018-07-17 19:37:11 UTC (rev 15474)
+++ trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/html/HtmlAnchor.java 2018-07-18 06:15:19 UTC (rev 15475)
@@ -169,9 +169,9 @@
}
final WebRequest webRequest = new WebRequest(url, browser.getHtmlAcceptHeader());
+ // use the page encoding even if this is a GET requests
webRequest.setCharset(page.getCharset());
- // use the page encoding even if this is a GET requests
- webRequest.setUrlEncodingCharset(page.getCharset());
+
webRequest.setAdditionalHeader(HttpHeader.REFERER, page.getUrl().toExternalForm());
if (LOG.isDebugEnabled()) {
LOG.debug(
Modified: trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/html/HtmlLink.java
===================================================================
--- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/html/HtmlLink.java 2018-07-17 19:37:11 UTC (rev 15474)
+++ trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/html/HtmlLink.java 2018-07-18 06:15:19 UTC (rev 15475)
@@ -228,7 +228,7 @@
final WebRequest request = new WebRequest(url);
// use the page encoding even if this is a GET requests
- request.setUrlEncodingCharset(page.getCharset());
+ request.setCharset(page.getCharset());
request.setAdditionalHeader(HttpHeader.REFERER, page.getUrl().toExternalForm());
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot