SPR-5536: RestTemplate does not do HTTP GET if it should
This commit is contained in:
@@ -28,8 +28,6 @@ import org.apache.commons.httpclient.methods.RequestEntity;
|
||||
|
||||
import org.springframework.http.HttpHeaders;
|
||||
import org.springframework.http.HttpMethod;
|
||||
import org.springframework.http.client.AbstractClientHttpRequest;
|
||||
import org.springframework.http.client.ClientHttpResponse;
|
||||
|
||||
/**
|
||||
* {@link org.springframework.http.client.ClientHttpRequest} implementation that uses
|
||||
@@ -48,7 +46,7 @@ final class CommonsClientHttpRequest extends AbstractClientHttpRequest {
|
||||
private final HttpMethodBase httpMethod;
|
||||
|
||||
|
||||
public CommonsClientHttpRequest(HttpClient httpClient, HttpMethodBase httpMethod) {
|
||||
CommonsClientHttpRequest(HttpClient httpClient, HttpMethodBase httpMethod) {
|
||||
this.httpClient = httpClient;
|
||||
this.httpMethod = httpMethod;
|
||||
}
|
||||
|
||||
@@ -21,9 +21,9 @@ import java.net.HttpURLConnection;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.springframework.util.FileCopyUtils;
|
||||
import org.springframework.http.HttpHeaders;
|
||||
import org.springframework.http.HttpMethod;
|
||||
import org.springframework.util.FileCopyUtils;
|
||||
|
||||
/**
|
||||
* {@link ClientHttpRequest} implementation that uses standard J2SE facilities to execute requests.
|
||||
@@ -38,7 +38,7 @@ final class SimpleClientHttpRequest extends AbstractClientHttpRequest {
|
||||
private final HttpURLConnection connection;
|
||||
|
||||
|
||||
public SimpleClientHttpRequest(HttpURLConnection connection) {
|
||||
SimpleClientHttpRequest(HttpURLConnection connection) {
|
||||
this.connection = connection;
|
||||
}
|
||||
|
||||
@@ -56,7 +56,9 @@ final class SimpleClientHttpRequest extends AbstractClientHttpRequest {
|
||||
}
|
||||
}
|
||||
this.connection.connect();
|
||||
FileCopyUtils.copy(bufferedOutput, this.connection.getOutputStream());
|
||||
if (bufferedOutput.length > 0) {
|
||||
FileCopyUtils.copy(bufferedOutput, this.connection.getOutputStream());
|
||||
}
|
||||
return new SimpleClientHttpResponse(this.connection);
|
||||
}
|
||||
|
||||
|
||||
@@ -21,8 +21,8 @@ import java.net.HttpURLConnection;
|
||||
import java.net.URI;
|
||||
import java.net.URLConnection;
|
||||
|
||||
import org.springframework.util.Assert;
|
||||
import org.springframework.http.HttpMethod;
|
||||
import org.springframework.util.Assert;
|
||||
|
||||
/**
|
||||
* {@link ClientHttpRequestFactory} implementation that uses standard J2SE facilities.
|
||||
@@ -51,7 +51,11 @@ public class SimpleClientHttpRequestFactory implements ClientHttpRequestFactory
|
||||
*/
|
||||
protected void prepareConnection(HttpURLConnection connection, String httpMethod) throws IOException {
|
||||
connection.setDoInput(true);
|
||||
connection.setDoOutput(true);
|
||||
if ("PUT".equals(httpMethod) || "POST".equals(httpMethod)) {
|
||||
connection.setDoOutput(true);
|
||||
} else {
|
||||
connection.setDoOutput(false);
|
||||
}
|
||||
connection.setRequestMethod(httpMethod);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user