|
|
|
@ -1,5 +1,5 @@ |
|
|
|
/* |
|
|
|
/* |
|
|
|
* Copyright 2002-2010 the original author or authors. |
|
|
|
* Copyright 2002-2011 the original author or authors. |
|
|
|
* |
|
|
|
* |
|
|
|
* Licensed under the Apache License, Version 2.0 (the "License"); |
|
|
|
* Licensed under the Apache License, Version 2.0 (the "License"); |
|
|
|
* you may not use this file except in compliance with the License. |
|
|
|
* you may not use this file except in compliance with the License. |
|
|
|
@ -30,21 +30,23 @@ import org.springframework.util.Assert; |
|
|
|
* {@link ClientHttpRequestFactory} implementation that uses standard J2SE facilities. |
|
|
|
* {@link ClientHttpRequestFactory} implementation that uses standard J2SE facilities. |
|
|
|
* |
|
|
|
* |
|
|
|
* @author Arjen Poutsma |
|
|
|
* @author Arjen Poutsma |
|
|
|
|
|
|
|
* @since 3.0 |
|
|
|
* @see java.net.HttpURLConnection |
|
|
|
* @see java.net.HttpURLConnection |
|
|
|
* @see CommonsClientHttpRequestFactory |
|
|
|
* @see CommonsClientHttpRequestFactory |
|
|
|
* @since 3.0 |
|
|
|
|
|
|
|
*/ |
|
|
|
*/ |
|
|
|
public class SimpleClientHttpRequestFactory implements ClientHttpRequestFactory { |
|
|
|
public class SimpleClientHttpRequestFactory implements ClientHttpRequestFactory { |
|
|
|
|
|
|
|
|
|
|
|
private Proxy proxy; |
|
|
|
private Proxy proxy; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
|
* Sets the {@link Proxy} to use for this request factory. |
|
|
|
* Set the {@link Proxy} to use for this request factory. |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
public void setProxy(Proxy proxy) { |
|
|
|
public void setProxy(Proxy proxy) { |
|
|
|
this.proxy = proxy; |
|
|
|
this.proxy = proxy; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public ClientHttpRequest createRequest(URI uri, HttpMethod httpMethod) throws IOException { |
|
|
|
public ClientHttpRequest createRequest(URI uri, HttpMethod httpMethod) throws IOException { |
|
|
|
HttpURLConnection connection = openConnection(uri.toURL(), proxy); |
|
|
|
HttpURLConnection connection = openConnection(uri.toURL(), proxy); |
|
|
|
prepareConnection(connection, httpMethod.name()); |
|
|
|
prepareConnection(connection, httpMethod.name()); |
|
|
|
@ -53,16 +55,15 @@ public class SimpleClientHttpRequestFactory implements ClientHttpRequestFactory |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
|
* Opens and returns a connection to the given URL. |
|
|
|
* Opens and returns a connection to the given URL. |
|
|
|
* <p>The default implementation uses the given {@linkplain #setProxy(java.net.Proxy) proxy} - if any - to open a |
|
|
|
* <p>The default implementation uses the given {@linkplain #setProxy(java.net.Proxy) proxy} - |
|
|
|
* connection. |
|
|
|
* if any - to open a connection. |
|
|
|
* |
|
|
|
|
|
|
|
* @param url the URL to open a connection to |
|
|
|
* @param url the URL to open a connection to |
|
|
|
* @param proxy the proxy to use, may be {@code null} |
|
|
|
* @param proxy the proxy to use, may be {@code null} |
|
|
|
* @return the opened connection |
|
|
|
* @return the opened connection |
|
|
|
* @throws IOException in case of I/O errors |
|
|
|
* @throws IOException in case of I/O errors |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
protected HttpURLConnection openConnection(URL url, Proxy proxy) throws IOException { |
|
|
|
protected HttpURLConnection openConnection(URL url, Proxy proxy) throws IOException { |
|
|
|
URLConnection urlConnection = proxy != null ? url.openConnection(proxy) : url.openConnection(); |
|
|
|
URLConnection urlConnection = (proxy != null ? url.openConnection(proxy) : url.openConnection()); |
|
|
|
Assert.isInstanceOf(HttpURLConnection.class, urlConnection); |
|
|
|
Assert.isInstanceOf(HttpURLConnection.class, urlConnection); |
|
|
|
return (HttpURLConnection) urlConnection; |
|
|
|
return (HttpURLConnection) urlConnection; |
|
|
|
} |
|
|
|
} |
|
|
|
@ -70,7 +71,6 @@ public class SimpleClientHttpRequestFactory implements ClientHttpRequestFactory |
|
|
|
/** |
|
|
|
/** |
|
|
|
* Template method for preparing the given {@link HttpURLConnection}. |
|
|
|
* Template method for preparing the given {@link HttpURLConnection}. |
|
|
|
* <p>The default implementation prepares the connection for input and output, and sets the HTTP method. |
|
|
|
* <p>The default implementation prepares the connection for input and output, and sets the HTTP method. |
|
|
|
* |
|
|
|
|
|
|
|
* @param connection the connection to prepare |
|
|
|
* @param connection the connection to prepare |
|
|
|
* @param httpMethod the HTTP request method ({@code GET}, {@code POST}, etc.) |
|
|
|
* @param httpMethod the HTTP request method ({@code GET}, {@code POST}, etc.) |
|
|
|
* @throws IOException in case of I/O errors |
|
|
|
* @throws IOException in case of I/O errors |
|
|
|
@ -92,4 +92,4 @@ public class SimpleClientHttpRequestFactory implements ClientHttpRequestFactory |
|
|
|
connection.setRequestMethod(httpMethod); |
|
|
|
connection.setRequestMethod(httpMethod); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|