You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hc.apache.org by ol...@apache.org on 2016/04/28 11:38:26 UTC
svn commit: r1741398 - in /httpcomponents/httpcore/trunk/httpcore5/src:
examples/org/apache/hc/core5/http/examples/
main/java/org/apache/hc/core5/http/
main/java/org/apache/hc/core5/http/message/
test/java/org/apache/hc/core5/http/message/
Author: olegk
Date: Thu Apr 28 09:38:26 2016
New Revision: 1741398
URL: http://svn.apache.org/viewvc?rev=1741398&view=rev
Log:
Added HttpRequest#getUri method; fixed broken examples
Modified:
httpcomponents/httpcore/trunk/httpcore5/src/examples/org/apache/hc/core5/http/examples/ElementalHttpGet.java
httpcomponents/httpcore/trunk/httpcore5/src/examples/org/apache/hc/core5/http/examples/ElementalHttpPost.java
httpcomponents/httpcore/trunk/httpcore5/src/examples/org/apache/hc/core5/http/examples/ElementalHttpPostTrailers.java
httpcomponents/httpcore/trunk/httpcore5/src/examples/org/apache/hc/core5/http/examples/ElementalPoolingHttpGet.java
httpcomponents/httpcore/trunk/httpcore5/src/examples/org/apache/hc/core5/http/examples/ElementalReverseProxy.java
httpcomponents/httpcore/trunk/httpcore5/src/examples/org/apache/hc/core5/http/examples/HttpFileServer.java
httpcomponents/httpcore/trunk/httpcore5/src/examples/org/apache/hc/core5/http/examples/NHttpFileServer.java
httpcomponents/httpcore/trunk/httpcore5/src/examples/org/apache/hc/core5/http/examples/NHttpReverseProxy.java
httpcomponents/httpcore/trunk/httpcore5/src/main/java/org/apache/hc/core5/http/HttpRequest.java
httpcomponents/httpcore/trunk/httpcore5/src/main/java/org/apache/hc/core5/http/message/BasicHttpRequest.java
httpcomponents/httpcore/trunk/httpcore5/src/test/java/org/apache/hc/core5/http/message/TestBasicMessages.java
Modified: httpcomponents/httpcore/trunk/httpcore5/src/examples/org/apache/hc/core5/http/examples/ElementalHttpGet.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore5/src/examples/org/apache/hc/core5/http/examples/ElementalHttpGet.java?rev=1741398&r1=1741397&r2=1741398&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore5/src/examples/org/apache/hc/core5/http/examples/ElementalHttpGet.java (original)
+++ httpcomponents/httpcore/trunk/httpcore5/src/examples/org/apache/hc/core5/http/examples/ElementalHttpGet.java Thu Apr 28 09:38:26 2016
@@ -63,7 +63,6 @@ public class ElementalHttpGet {
HttpCoreContext coreContext = HttpCoreContext.create();
HttpHost host = new HttpHost("localhost", 8080);
- coreContext.setTargetHost(host);
DefaultBHttpClientConnection conn = new DefaultBHttpClientConnection(8 * 1024);
ConnectionReuseStrategy connStrategy = DefaultConnectionReuseStrategy.INSTANCE;
@@ -80,7 +79,7 @@ public class ElementalHttpGet {
Socket socket = new Socket(host.getHostName(), host.getPort());
conn.bind(socket);
}
- BasicHttpRequest request = new BasicHttpRequest("GET", targets[i]);
+ BasicHttpRequest request = new BasicHttpRequest("GET", host, targets[i]);
System.out.println(">> Request URI: " + request.getUri());
httpexecutor.preProcess(request, httpproc, coreContext);
Modified: httpcomponents/httpcore/trunk/httpcore5/src/examples/org/apache/hc/core5/http/examples/ElementalHttpPost.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore5/src/examples/org/apache/hc/core5/http/examples/ElementalHttpPost.java?rev=1741398&r1=1741397&r2=1741398&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore5/src/examples/org/apache/hc/core5/http/examples/ElementalHttpPost.java (original)
+++ httpcomponents/httpcore/trunk/httpcore5/src/examples/org/apache/hc/core5/http/examples/ElementalHttpPost.java Thu Apr 28 09:38:26 2016
@@ -71,7 +71,6 @@ public class ElementalHttpPost {
HttpCoreContext coreContext = HttpCoreContext.create();
HttpHost host = new HttpHost("localhost", 8080);
- coreContext.setTargetHost(host);
DefaultBHttpClientConnection conn = new DefaultBHttpClientConnection(8 * 1024);
ConnectionReuseStrategy connStrategy = DefaultConnectionReuseStrategy.INSTANCE;
@@ -97,7 +96,7 @@ public class ElementalHttpPost {
Socket socket = new Socket(host.getHostName(), host.getPort());
conn.bind(socket);
}
- HttpRequest request = new BasicHttpRequest("POST",
+ HttpRequest request = new BasicHttpRequest("POST", host,
"/servlets-examples/servlet/RequestInfoExample");
request.setEntity(requestBodies[i]);
System.out.println(">> Request URI: " + request.getUri());
Modified: httpcomponents/httpcore/trunk/httpcore5/src/examples/org/apache/hc/core5/http/examples/ElementalHttpPostTrailers.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore5/src/examples/org/apache/hc/core5/http/examples/ElementalHttpPostTrailers.java?rev=1741398&r1=1741397&r2=1741398&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore5/src/examples/org/apache/hc/core5/http/examples/ElementalHttpPostTrailers.java (original)
+++ httpcomponents/httpcore/trunk/httpcore5/src/examples/org/apache/hc/core5/http/examples/ElementalHttpPostTrailers.java Thu Apr 28 09:38:26 2016
@@ -62,14 +62,13 @@ public class ElementalHttpPostTrailers {
HttpRequestExecutor httpexecutor = new HttpRequestExecutor();
HttpCoreContext coreContext = HttpCoreContext.create();
HttpHost host = new HttpHost("localhost", 8080);
- coreContext.setTargetHost(host);
DefaultBHttpClientConnection conn = new DefaultBHttpClientConnection(8 * 1024);
HttpEntity requestBody = new HttpEntityWithTrailers(
new StringEntity("Chunked message with trailers", ContentType.TEXT_PLAIN),
new BasicHeader("t1","Hello world"));
Socket socket = new Socket(host.getHostName(), host.getPort());
conn.bind(socket);
- BasicHttpRequest request = new BasicHttpRequest("POST", "/");
+ BasicHttpRequest request = new BasicHttpRequest("POST", host, "/");
request.setEntity(requestBody);
httpexecutor.preProcess(request, httpproc, coreContext);
HttpResponse response = httpexecutor.execute(request, conn, coreContext);
Modified: httpcomponents/httpcore/trunk/httpcore5/src/examples/org/apache/hc/core5/http/examples/ElementalPoolingHttpGet.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore5/src/examples/org/apache/hc/core5/http/examples/ElementalPoolingHttpGet.java?rev=1741398&r1=1741397&r2=1741398&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore5/src/examples/org/apache/hc/core5/http/examples/ElementalPoolingHttpGet.java (original)
+++ httpcomponents/httpcore/trunk/httpcore5/src/examples/org/apache/hc/core5/http/examples/ElementalPoolingHttpGet.java Thu Apr 28 09:38:26 2016
@@ -97,9 +97,8 @@ public class ElementalPoolingHttpGet {
try {
HttpClientConnection conn = entry.getConnection();
HttpCoreContext coreContext = HttpCoreContext.create();
- coreContext.setTargetHost(this.target);
- BasicHttpRequest request = new BasicHttpRequest("GET", "/");
+ BasicHttpRequest request = new BasicHttpRequest("GET", this.target, "/");
System.out.println(">> Request URI: " + request.getUri());
httpexecutor.preProcess(request, httpproc, coreContext);
Modified: httpcomponents/httpcore/trunk/httpcore5/src/examples/org/apache/hc/core5/http/examples/ElementalReverseProxy.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore5/src/examples/org/apache/hc/core5/http/examples/ElementalReverseProxy.java?rev=1741398&r1=1741397&r2=1741398&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore5/src/examples/org/apache/hc/core5/http/examples/ElementalReverseProxy.java (original)
+++ httpcomponents/httpcore/trunk/httpcore5/src/examples/org/apache/hc/core5/http/examples/ElementalReverseProxy.java Thu Apr 28 09:38:26 2016
@@ -119,9 +119,8 @@ public class ElementalReverseProxy {
HTTP_OUT_CONN);
context.setAttribute(HttpCoreContext.HTTP_CONNECTION, conn);
- context.setAttribute(HttpCoreContext.HTTP_TARGET_HOST, this.target);
- System.out.println(">> Request URI: " + request.getUri());
+ System.out.println(">> Request URI: " + request.getPath());
// Remove hop-by-hop headers
request.removeHeaders(HttpHeaders.CONTENT_LENGTH);
Modified: httpcomponents/httpcore/trunk/httpcore5/src/examples/org/apache/hc/core5/http/examples/HttpFileServer.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore5/src/examples/org/apache/hc/core5/http/examples/HttpFileServer.java?rev=1741398&r1=1741397&r2=1741398&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore5/src/examples/org/apache/hc/core5/http/examples/HttpFileServer.java (original)
+++ httpcomponents/httpcore/trunk/httpcore5/src/examples/org/apache/hc/core5/http/examples/HttpFileServer.java Thu Apr 28 09:38:26 2016
@@ -148,7 +148,7 @@ public class HttpFileServer {
if (!method.equals("GET") && !method.equals("HEAD") && !method.equals("POST")) {
throw new MethodNotSupportedException(method + " method not supported");
}
- String target = request.getUri();
+ String path = request.getPath();
HttpEntity incomingEntity = request.getEntity();
if (incomingEntity != null) {
@@ -156,7 +156,7 @@ public class HttpFileServer {
System.out.println("Incoming incomingEntity content (bytes): " + entityContent.length);
}
- final File file = new File(this.docRoot, URLDecoder.decode(target, "UTF-8"));
+ final File file = new File(this.docRoot, URLDecoder.decode(path, "UTF-8"));
if (!file.exists()) {
response.setCode(HttpStatus.SC_NOT_FOUND);
Modified: httpcomponents/httpcore/trunk/httpcore5/src/examples/org/apache/hc/core5/http/examples/NHttpFileServer.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore5/src/examples/org/apache/hc/core5/http/examples/NHttpFileServer.java?rev=1741398&r1=1741397&r2=1741398&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore5/src/examples/org/apache/hc/core5/http/examples/NHttpFileServer.java (original)
+++ httpcomponents/httpcore/trunk/httpcore5/src/examples/org/apache/hc/core5/http/examples/NHttpFileServer.java Thu Apr 28 09:38:26 2016
@@ -151,8 +151,8 @@ public class NHttpFileServer {
throw new MethodNotSupportedException(method + " method not supported");
}
- String target = request.getUri();
- final File file = new File(this.docRoot, URLDecoder.decode(target, "UTF-8"));
+ String path = request.getPath();
+ final File file = new File(this.docRoot, URLDecoder.decode(path, "UTF-8"));
if (!file.exists()) {
response.setCode(HttpStatus.SC_NOT_FOUND);
Modified: httpcomponents/httpcore/trunk/httpcore5/src/examples/org/apache/hc/core5/http/examples/NHttpReverseProxy.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore5/src/examples/org/apache/hc/core5/http/examples/NHttpReverseProxy.java?rev=1741398&r1=1741397&r2=1741398&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore5/src/examples/org/apache/hc/core5/http/examples/NHttpReverseProxy.java (original)
+++ httpcomponents/httpcore/trunk/httpcore5/src/examples/org/apache/hc/core5/http/examples/NHttpReverseProxy.java Thu Apr 28 09:38:26 2016
@@ -417,7 +417,7 @@ public class NHttpReverseProxy {
@Override
public void requestReceived(final HttpRequest request) {
synchronized (this.httpExchange) {
- System.out.println("[client->proxy] " + this.httpExchange.getId() + " " + request.getMethod() + " " + request.getUri());
+ System.out.println("[client->proxy] " + this.httpExchange.getId() + " " + request.getMethod() + " " + request.getPath());
this.httpExchange.setRequest(request);
this.executor.execute(
new ProxyRequestProducer(this.httpExchange),
@@ -514,9 +514,9 @@ public class NHttpReverseProxy {
public HttpRequest generateRequest() {
synchronized (this.httpExchange) {
HttpRequest request = this.httpExchange.getRequest();
- System.out.println("[proxy->origin] " + this.httpExchange.getId() + " " + request.getMethod() + " " + request.getUri());
+ System.out.println("[proxy->origin] " + this.httpExchange.getId() + " " + request.getMethod() + " " + request.getPath());
// Rewrite request!!!!
- BasicHttpRequest newREquest = new BasicHttpRequest(request.getMethod(), request.getUri());
+ BasicHttpRequest newREquest = new BasicHttpRequest(request.getMethod(), request.getPath());
newREquest.setEntity(request.getEntity());
return newREquest;
}
Modified: httpcomponents/httpcore/trunk/httpcore5/src/main/java/org/apache/hc/core5/http/HttpRequest.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore5/src/main/java/org/apache/hc/core5/http/HttpRequest.java?rev=1741398&r1=1741397&r2=1741398&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore5/src/main/java/org/apache/hc/core5/http/HttpRequest.java (original)
+++ httpcomponents/httpcore/trunk/httpcore5/src/main/java/org/apache/hc/core5/http/HttpRequest.java Thu Apr 28 09:38:26 2016
@@ -27,6 +27,9 @@
package org.apache.hc.core5.http;
+import java.net.URI;
+import java.net.URISyntaxException;
+
/**
* A request message from a client to a server includes, within the
* first line of that message, the method to be applied to the resource,
@@ -89,4 +92,13 @@ public interface HttpRequest extends Htt
*/
void setAuthority(String authority);
+ /**
+ * Returns full request URI of this request message.
+ *
+ * @return the request URI.
+ *
+ * @since 5.0
+ */
+ URI getUri() throws URISyntaxException;
+
}
Modified: httpcomponents/httpcore/trunk/httpcore5/src/main/java/org/apache/hc/core5/http/message/BasicHttpRequest.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore5/src/main/java/org/apache/hc/core5/http/message/BasicHttpRequest.java?rev=1741398&r1=1741397&r2=1741398&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore5/src/main/java/org/apache/hc/core5/http/message/BasicHttpRequest.java (original)
+++ httpcomponents/httpcore/trunk/httpcore5/src/main/java/org/apache/hc/core5/http/message/BasicHttpRequest.java Thu Apr 28 09:38:26 2016
@@ -28,6 +28,7 @@
package org.apache.hc.core5.http.message;
import java.net.URI;
+import java.net.URISyntaxException;
import org.apache.hc.core5.annotation.NotThreadSafe;
import org.apache.hc.core5.http.HttpHost;
@@ -94,13 +95,13 @@ public class BasicHttpRequest extends Ab
this.scheme = requestUri.getScheme();
this.authority = requestUri.getAuthority();
final StringBuilder buf = new StringBuilder();
- final String path = requestUri.getRawPath();
+ final String path = requestUri.getPath();
if (!TextUtils.isBlank(path)) {
buf.append(path);
} else {
buf.append("/");
}
- final String query = requestUri.getRawQuery();
+ final String query = requestUri.getQuery();
if (query != null) {
buf.append('?').append(query);
}
@@ -153,6 +154,16 @@ public class BasicHttpRequest extends Ab
}
@Override
+ public URI getUri() throws URISyntaxException {
+ final StringBuilder buf = new StringBuilder();
+ if (this.authority != null) {
+ buf.append(this.scheme != null ? this.scheme : "http").append("://").append(this.authority);
+ }
+ buf.append(this.path != null ? this.path : "/");
+ return new URI(buf.toString());
+ }
+
+ @Override
public String toString() {
final StringBuilder sb = new StringBuilder();
sb.append(this.method).append(" ").append(this.scheme).append("://").append(this.authority).append("/").append(this.path).append(" ")
Modified: httpcomponents/httpcore/trunk/httpcore5/src/test/java/org/apache/hc/core5/http/message/TestBasicMessages.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore5/src/test/java/org/apache/hc/core5/http/message/TestBasicMessages.java?rev=1741398&r1=1741397&r2=1741398&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore5/src/test/java/org/apache/hc/core5/http/message/TestBasicMessages.java (original)
+++ httpcomponents/httpcore/trunk/httpcore5/src/test/java/org/apache/hc/core5/http/message/TestBasicMessages.java Thu Apr 28 09:38:26 2016
@@ -109,6 +109,7 @@ public class TestBasicMessages {
Assert.assertEquals("GET", request.getMethod());
Assert.assertEquals("/stuff", request.getPath());
Assert.assertEquals(null, request.getAuthority());
+ Assert.assertEquals(new URI("/stuff"), request.getUri());
}
@Test
@@ -117,6 +118,7 @@ public class TestBasicMessages {
Assert.assertEquals("GET", request.getMethod());
Assert.assertEquals("/stuff", request.getPath());
Assert.assertEquals(null, request.getAuthority());
+ Assert.assertEquals(new URI("/stuff"), request.getUri());
}
@Test
@@ -126,6 +128,7 @@ public class TestBasicMessages {
Assert.assertEquals("/stuff?param=value", request.getPath());
Assert.assertEquals("host:9443", request.getAuthority());
Assert.assertEquals("https", request.getScheme());
+ Assert.assertEquals(new URI("https://host:9443/stuff?param=value"), request.getUri());
}
@Test
@@ -135,6 +138,7 @@ public class TestBasicMessages {
Assert.assertEquals("/", request.getPath());
Assert.assertEquals("host", request.getAuthority());
Assert.assertEquals("http", request.getScheme());
+ Assert.assertEquals(new URI("http://host/"), request.getUri());
}
@Test