Cache request line in HttpRequestWrapper

Contributed by Dmitry Potapov <dpotapov at yandex-team.ru>

git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/branches/4.5.x@1683475 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Oleg Kalnichevski 2015-06-04 07:38:42 +00:00
parent ea21ed26a7
commit 20e3f42df2
1 changed files with 15 additions and 9 deletions

View File

@ -56,6 +56,7 @@ public class HttpRequestWrapper extends AbstractHttpMessage implements HttpUriRe
private final HttpRequest original;
private final HttpHost target;
private final String method;
private RequestLine requestLine;
private ProtocolVersion version;
private URI uri;
@ -80,6 +81,7 @@ public class HttpRequestWrapper extends AbstractHttpMessage implements HttpUriRe
public void setProtocolVersion(final ProtocolVersion version) {
this.version = version;
this.requestLine = null;
}
@Override
@ -89,6 +91,7 @@ public class HttpRequestWrapper extends AbstractHttpMessage implements HttpUriRe
public void setURI(final URI uri) {
this.uri = uri;
this.requestLine = null;
}
@Override
@ -108,16 +111,19 @@ public class HttpRequestWrapper extends AbstractHttpMessage implements HttpUriRe
@Override
public RequestLine getRequestLine() {
String requestUri = null;
if (this.uri != null) {
requestUri = this.uri.toASCIIString();
} else {
requestUri = this.original.getRequestLine().getUri();
if (this.requestLine == null) {
String requestUri;
if (this.uri != null) {
requestUri = this.uri.toASCIIString();
} else {
requestUri = this.original.getRequestLine().getUri();
}
if (requestUri == null || requestUri.isEmpty()) {
requestUri = "/";
}
this.requestLine = new BasicRequestLine(this.method, requestUri, getProtocolVersion());
}
if (requestUri == null || requestUri.isEmpty()) {
requestUri = "/";
}
return new BasicRequestLine(this.method, requestUri, getProtocolVersion());
return this.requestLine;
}
public HttpRequest getOriginal() {