33
44package com .azure .core .http ;
55
6- import com .azure .core .implementation .util .FluxByteBufferContent ;
7- import com .azure .core .util .RequestContent ;
86import com .azure .core .util .logging .ClientLogger ;
97import reactor .core .publisher .Flux ;
108
119import java .net .MalformedURLException ;
1210import java .net .URL ;
1311import java .nio .ByteBuffer ;
12+ import java .nio .charset .StandardCharsets ;
1413
1514/**
1615 * The outgoing Http request. It provides ways to construct {@link HttpRequest} with {@link HttpMethod}, {@link URL},
@@ -22,7 +21,7 @@ public class HttpRequest {
2221 private HttpMethod httpMethod ;
2322 private URL url ;
2423 private HttpHeaders headers ;
25- private RequestContent requestContent ;
24+ private Flux < ByteBuffer > body ;
2625
2726 /**
2827 * Create a new HttpRequest instance.
@@ -31,7 +30,7 @@ public class HttpRequest {
3130 * @param url the target address to send the request to
3231 */
3332 public HttpRequest (HttpMethod httpMethod , URL url ) {
34- this (httpMethod , url , new HttpHeaders (), ( RequestContent ) null );
33+ this (httpMethod , url , new HttpHeaders (), null );
3534 }
3635
3736 /**
@@ -60,22 +59,10 @@ public HttpRequest(HttpMethod httpMethod, String url) {
6059 * @param body the request content
6160 */
6261 public HttpRequest (HttpMethod httpMethod , URL url , HttpHeaders headers , Flux <ByteBuffer > body ) {
63- this (httpMethod , url , headers , new FluxByteBufferContent (body ));
64- }
65-
66- /**
67- * Creates a new {@link HttpRequest} instance.
68- *
69- * @param httpMethod The HTTP request method.
70- * @param url The target address to send the request.
71- * @param headers The HTTP headers of the request.
72- * @param requestContent The {@link RequestContent}.
73- */
74- public HttpRequest (HttpMethod httpMethod , URL url , HttpHeaders headers , RequestContent requestContent ) {
7562 this .httpMethod = httpMethod ;
7663 this .url = url ;
7764 this .headers = headers ;
78- this .requestContent = requestContent ;
65+ this .body = body ;
7966 }
8067
8168 /**
@@ -173,7 +160,7 @@ public HttpRequest setHeader(String name, String value) {
173160 * @return the content to be send
174161 */
175162 public Flux <ByteBuffer > getBody () {
176- return ( requestContent == null ) ? null : requestContent . asFluxByteBuffer () ;
163+ return body ;
177164 }
178165
179166 /**
@@ -185,7 +172,8 @@ public Flux<ByteBuffer> getBody() {
185172 * @return this HttpRequest
186173 */
187174 public HttpRequest setBody (String content ) {
188- return setRequestContent (RequestContent .fromString (content ));
175+ final byte [] bodyBytes = content .getBytes (StandardCharsets .UTF_8 );
176+ return setBody (bodyBytes );
189177 }
190178
191179 /**
@@ -211,36 +199,7 @@ public HttpRequest setBody(byte[] content) {
211199 * @return this HttpRequest
212200 */
213201 public HttpRequest setBody (Flux <ByteBuffer > content ) {
214- this .requestContent = new FluxByteBufferContent (content );
215- return this ;
216- }
217-
218- /**
219- * Gets the HttpRequest's {@link RequestContent}.
220- *
221- * @return The {@link RequestContent}.
222- */
223- public RequestContent getRequestContent () {
224- return this .requestContent ;
225- }
226-
227- /**
228- * Sets the {@link RequestContent}.
229- * <p>
230- * If {@link RequestContent#getLength()} returns null for the passed {@link RequestContent} the caller must set the
231- * Content-Length header to indicate the length of the content, or use Transfer-Encoding: chunked. Otherwise, {@link
232- * RequestContent#getLength()} will be used to set the Content-Length header.
233- *
234- * @param requestContent The {@link RequestContent}.
235- * @return The updated HttpRequest object.
236- */
237- public HttpRequest setRequestContent (RequestContent requestContent ) {
238- Long requestContentLength = requestContent .getLength ();
239- if (requestContentLength != null ) {
240- setContentLength (requestContentLength );
241- }
242-
243- this .requestContent = requestContent ;
202+ this .body = content ;
244203 return this ;
245204 }
246205
@@ -259,6 +218,6 @@ private void setContentLength(long contentLength) {
259218 */
260219 public HttpRequest copy () {
261220 final HttpHeaders bufferedHeaders = new HttpHeaders (headers );
262- return new HttpRequest (httpMethod , url , bufferedHeaders , requestContent );
221+ return new HttpRequest (httpMethod , url , bufferedHeaders , body );
263222 }
264223}
0 commit comments