|
|
|
@ -1,5 +1,5 @@ |
|
|
|
/* |
|
|
|
/* |
|
|
|
* Copyright 2002-2017 the original author or authors. |
|
|
|
* Copyright 2002-2018 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. |
|
|
|
@ -16,8 +16,6 @@ |
|
|
|
|
|
|
|
|
|
|
|
package org.springframework.http.client; |
|
|
|
package org.springframework.http.client; |
|
|
|
|
|
|
|
|
|
|
|
import java.io.IOException; |
|
|
|
|
|
|
|
import java.io.OutputStream; |
|
|
|
|
|
|
|
import java.net.URI; |
|
|
|
import java.net.URI; |
|
|
|
import java.util.Arrays; |
|
|
|
import java.util.Arrays; |
|
|
|
import java.util.Locale; |
|
|
|
import java.util.Locale; |
|
|
|
@ -69,6 +67,7 @@ public abstract class AbstractHttpRequestFactoryTestCase extends AbstractMockWeb |
|
|
|
ClientHttpRequest request = factory.createRequest(uri, HttpMethod.GET); |
|
|
|
ClientHttpRequest request = factory.createRequest(uri, HttpMethod.GET); |
|
|
|
assertEquals("Invalid HTTP method", HttpMethod.GET, request.getMethod()); |
|
|
|
assertEquals("Invalid HTTP method", HttpMethod.GET, request.getMethod()); |
|
|
|
assertEquals("Invalid HTTP URI", uri, request.getURI()); |
|
|
|
assertEquals("Invalid HTTP URI", uri, request.getURI()); |
|
|
|
|
|
|
|
|
|
|
|
ClientHttpResponse response = request.execute(); |
|
|
|
ClientHttpResponse response = request.execute(); |
|
|
|
try { |
|
|
|
try { |
|
|
|
assertEquals("Invalid status code", HttpStatus.NOT_FOUND, response.getStatusCode()); |
|
|
|
assertEquals("Invalid status code", HttpStatus.NOT_FOUND, response.getStatusCode()); |
|
|
|
@ -82,6 +81,7 @@ public abstract class AbstractHttpRequestFactoryTestCase extends AbstractMockWeb |
|
|
|
public void echo() throws Exception { |
|
|
|
public void echo() throws Exception { |
|
|
|
ClientHttpRequest request = factory.createRequest(new URI(baseUrl + "/echo"), HttpMethod.PUT); |
|
|
|
ClientHttpRequest request = factory.createRequest(new URI(baseUrl + "/echo"), HttpMethod.PUT); |
|
|
|
assertEquals("Invalid HTTP method", HttpMethod.PUT, request.getMethod()); |
|
|
|
assertEquals("Invalid HTTP method", HttpMethod.PUT, request.getMethod()); |
|
|
|
|
|
|
|
|
|
|
|
String headerName = "MyHeader"; |
|
|
|
String headerName = "MyHeader"; |
|
|
|
String headerValue1 = "value1"; |
|
|
|
String headerValue1 = "value1"; |
|
|
|
request.getHeaders().add(headerName, headerValue1); |
|
|
|
request.getHeaders().add(headerName, headerValue1); |
|
|
|
@ -89,19 +89,15 @@ public abstract class AbstractHttpRequestFactoryTestCase extends AbstractMockWeb |
|
|
|
request.getHeaders().add(headerName, headerValue2); |
|
|
|
request.getHeaders().add(headerName, headerValue2); |
|
|
|
final byte[] body = "Hello World".getBytes("UTF-8"); |
|
|
|
final byte[] body = "Hello World".getBytes("UTF-8"); |
|
|
|
request.getHeaders().setContentLength(body.length); |
|
|
|
request.getHeaders().setContentLength(body.length); |
|
|
|
|
|
|
|
|
|
|
|
if (request instanceof StreamingHttpOutputMessage) { |
|
|
|
if (request instanceof StreamingHttpOutputMessage) { |
|
|
|
StreamingHttpOutputMessage streamingRequest = |
|
|
|
StreamingHttpOutputMessage streamingRequest = (StreamingHttpOutputMessage) request; |
|
|
|
(StreamingHttpOutputMessage) request; |
|
|
|
streamingRequest.setBody(outputStream -> StreamUtils.copy(body, outputStream)); |
|
|
|
streamingRequest.setBody(new StreamingHttpOutputMessage.Body() { |
|
|
|
|
|
|
|
@Override |
|
|
|
|
|
|
|
public void writeTo(OutputStream outputStream) throws IOException { |
|
|
|
|
|
|
|
StreamUtils.copy(body, outputStream); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
}); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
else { |
|
|
|
else { |
|
|
|
StreamUtils.copy(body, request.getBody()); |
|
|
|
StreamUtils.copy(body, request.getBody()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
ClientHttpResponse response = request.execute(); |
|
|
|
ClientHttpResponse response = request.execute(); |
|
|
|
try { |
|
|
|
try { |
|
|
|
assertEquals("Invalid status code", HttpStatus.OK, response.getStatusCode()); |
|
|
|
assertEquals("Invalid status code", HttpStatus.OK, response.getStatusCode()); |
|
|
|
@ -119,17 +115,14 @@ public abstract class AbstractHttpRequestFactoryTestCase extends AbstractMockWeb |
|
|
|
@Test(expected = IllegalStateException.class) |
|
|
|
@Test(expected = IllegalStateException.class) |
|
|
|
public void multipleWrites() throws Exception { |
|
|
|
public void multipleWrites() throws Exception { |
|
|
|
ClientHttpRequest request = factory.createRequest(new URI(baseUrl + "/echo"), HttpMethod.POST); |
|
|
|
ClientHttpRequest request = factory.createRequest(new URI(baseUrl + "/echo"), HttpMethod.POST); |
|
|
|
|
|
|
|
|
|
|
|
final byte[] body = "Hello World".getBytes("UTF-8"); |
|
|
|
final byte[] body = "Hello World".getBytes("UTF-8"); |
|
|
|
if (request instanceof StreamingHttpOutputMessage) { |
|
|
|
if (request instanceof StreamingHttpOutputMessage) { |
|
|
|
StreamingHttpOutputMessage streamingRequest = |
|
|
|
StreamingHttpOutputMessage streamingRequest = (StreamingHttpOutputMessage) request; |
|
|
|
(StreamingHttpOutputMessage) request; |
|
|
|
streamingRequest.setBody(outputStream -> { |
|
|
|
streamingRequest.setBody(new StreamingHttpOutputMessage.Body() { |
|
|
|
StreamUtils.copy(body, outputStream); |
|
|
|
@Override |
|
|
|
outputStream.flush(); |
|
|
|
public void writeTo(OutputStream outputStream) throws IOException { |
|
|
|
outputStream.close(); |
|
|
|
StreamUtils.copy(body, outputStream); |
|
|
|
|
|
|
|
outputStream.flush(); |
|
|
|
|
|
|
|
outputStream.close(); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
}); |
|
|
|
}); |
|
|
|
} |
|
|
|
} |
|
|
|
else { |
|
|
|
else { |
|
|
|
@ -143,9 +136,11 @@ public abstract class AbstractHttpRequestFactoryTestCase extends AbstractMockWeb |
|
|
|
@Test(expected = UnsupportedOperationException.class) |
|
|
|
@Test(expected = UnsupportedOperationException.class) |
|
|
|
public void headersAfterExecute() throws Exception { |
|
|
|
public void headersAfterExecute() throws Exception { |
|
|
|
ClientHttpRequest request = factory.createRequest(new URI(baseUrl + "/echo"), HttpMethod.POST); |
|
|
|
ClientHttpRequest request = factory.createRequest(new URI(baseUrl + "/echo"), HttpMethod.POST); |
|
|
|
|
|
|
|
|
|
|
|
request.getHeaders().add("MyHeader", "value"); |
|
|
|
request.getHeaders().add("MyHeader", "value"); |
|
|
|
byte[] body = "Hello World".getBytes("UTF-8"); |
|
|
|
byte[] body = "Hello World".getBytes("UTF-8"); |
|
|
|
FileCopyUtils.copy(body, request.getBody()); |
|
|
|
FileCopyUtils.copy(body, request.getBody()); |
|
|
|
|
|
|
|
|
|
|
|
ClientHttpResponse response = request.execute(); |
|
|
|
ClientHttpResponse response = request.execute(); |
|
|
|
try { |
|
|
|
try { |
|
|
|
request.getHeaders().add("MyHeader", "value"); |
|
|
|
request.getHeaders().add("MyHeader", "value"); |
|
|
|
|