Skip to content

Commit 9140c8a

Browse files
author
Stephane Landelle
committed
1 parent cfd9ee1 commit 9140c8a

File tree

3 files changed

+24
-0
lines changed

3 files changed

+24
-0
lines changed

src/main/java/com/ning/http/client/Request.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,11 @@ public interface Request {
7979
*/
8080
byte[] getByteData();
8181

82+
/**
83+
* @return the current request's body as a composite of byte arrays
84+
*/
85+
List<byte[]> getCompositeByteData();
86+
8287
/**
8388
* Return the current request's body as a string
8489
*

src/main/java/com/ning/http/client/RequestBuilderBase.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ private static final class RequestImpl implements Request {
5353
private FluentCaseInsensitiveStringsMap headers = new FluentCaseInsensitiveStringsMap();
5454
private ArrayList<Cookie> cookies;
5555
private byte[] byteData;
56+
private List<byte[]> compositeByteData;
5657
private String stringData;
5758
private InputStream streamData;
5859
private BodyGenerator bodyGenerator;
@@ -82,6 +83,7 @@ public RequestImpl(Request prototype) {
8283
this.headers = new FluentCaseInsensitiveStringsMap(prototype.getHeaders());
8384
this.cookies = new ArrayList<Cookie>(prototype.getCookies());
8485
this.byteData = prototype.getByteData();
86+
this.compositeByteData = prototype.getCompositeByteData();
8587
this.stringData = prototype.getStringData();
8688
this.streamData = prototype.getStreamData();
8789
this.bodyGenerator = prototype.getBodyGenerator();
@@ -132,6 +134,10 @@ public byte[] getByteData() {
132134
return byteData;
133135
}
134136

137+
public List<byte[]> getCompositeByteData() {
138+
return compositeByteData;
139+
}
140+
135141
public String getStringData() {
136142
return stringData;
137143
}
@@ -372,6 +378,7 @@ public void resetFormParams() {
372378

373379
public void resetNonMultipartData() {
374380
request.byteData = null;
381+
request.compositeByteData = null;
375382
request.stringData = null;
376383
request.streamData = null;
377384
request.bodyGenerator = null;
@@ -395,6 +402,14 @@ public T setBody(byte[] data) {
395402
return derived.cast(this);
396403
}
397404

405+
public T setBody(List<byte[]> data) {
406+
resetFormParams();
407+
resetNonMultipartData();
408+
resetMultipartData();
409+
request.compositeByteData = data;
410+
return derived.cast(this);
411+
}
412+
398413
public T setBody(String data) {
399414
resetFormParams();
400415
resetNonMultipartData();

src/main/java/com/ning/http/client/providers/netty/request/NettyRequestFactory.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@
4646
import com.ning.http.client.providers.netty.request.body.NettyBody;
4747
import com.ning.http.client.providers.netty.request.body.NettyBodyBody;
4848
import com.ning.http.client.providers.netty.request.body.NettyByteArrayBody;
49+
import com.ning.http.client.providers.netty.request.body.NettyCompositeByteArrayBody;
4950
import com.ning.http.client.providers.netty.request.body.NettyDirectBody;
5051
import com.ning.http.client.providers.netty.request.body.NettyFileBody;
5152
import com.ning.http.client.providers.netty.request.body.NettyInputStreamBody;
@@ -207,6 +208,9 @@ private NettyBody body(Request request, HttpMethod method) throws IOException {
207208
if (request.getByteData() != null)
208209
nettyBody = new NettyByteArrayBody(request.getByteData());
209210

211+
else if (request.getCompositeByteData() != null)
212+
nettyBody = new NettyCompositeByteArrayBody(request.getCompositeByteData());
213+
210214
else if (request.getStringData() != null)
211215
nettyBody = new NettyByteArrayBody(request.getStringData().getBytes(bodyCharset));
212216

0 commit comments

Comments
 (0)