Prettify / Saner initial capacity

This commit is contained in:
Trustin Lee 2014-01-19 15:09:41 +09:00
parent 2746688fd7
commit 9b38e8778c

View File

@ -15,7 +15,6 @@
*/ */
package io.netty.handler.codec.http.multipart; package io.netty.handler.codec.http.multipart;
import static io.netty.buffer.Unpooled.wrappedBuffer;
import io.netty.buffer.ByteBuf; import io.netty.buffer.ByteBuf;
import io.netty.channel.ChannelHandlerContext; import io.netty.channel.ChannelHandlerContext;
import io.netty.handler.codec.DecoderResult; import io.netty.handler.codec.DecoderResult;
@ -44,6 +43,8 @@ import java.util.ListIterator;
import java.util.Map; import java.util.Map;
import java.util.regex.Pattern; import java.util.regex.Pattern;
import static io.netty.buffer.Unpooled.*;
/** /**
* This encoder will help to encode Request for a FORM as POST. * This encoder will help to encode Request for a FORM as POST.
*/ */
@ -557,16 +558,40 @@ public class HttpPostRequestEncoder implements ChunkedInput<HttpContent> {
.size() - 2); .size() - 2);
// remove past size // remove past size
globalBodySize -= pastAttribute.size(); globalBodySize -= pastAttribute.size();
StringBuilder replacement = new StringBuilder().append(HttpPostBodyUtil.CONTENT_DISPOSITION) StringBuilder replacement = new StringBuilder(
.append(": ").append(HttpPostBodyUtil.FORM_DATA).append("; ").append(HttpPostBodyUtil.NAME) 139 + multipartMixedBoundary.length() * 2 +
.append("=\"").append(fileUpload.getName()).append("\"\r\n"); fileUpload.getName().length() + fileUpload.getFilename().length());
replacement.append(HttpHeaders.Names.CONTENT_TYPE).append(": ")
.append(HttpPostBodyUtil.MULTIPART_MIXED).append("; ").append(HttpHeaders.Values.BOUNDARY) replacement.append(HttpPostBodyUtil.CONTENT_DISPOSITION);
.append('=').append(multipartMixedBoundary).append("\r\n\r\n"); replacement.append(": ");
replacement.append("--").append(multipartMixedBoundary).append("\r\n"); replacement.append(HttpPostBodyUtil.FORM_DATA);
replacement.append(HttpPostBodyUtil.CONTENT_DISPOSITION).append(": ").append(HttpPostBodyUtil.FILE) replacement.append("; ");
.append("; ").append(HttpPostBodyUtil.FILENAME).append("=\"") replacement.append(HttpPostBodyUtil.NAME);
.append(fileUpload.getFilename()).append("\"\r\n"); replacement.append("=\"");
replacement.append(fileUpload.getName());
replacement.append("\"\r\n");
replacement.append(HttpHeaders.Names.CONTENT_TYPE);
replacement.append(": ");
replacement.append(HttpPostBodyUtil.MULTIPART_MIXED);
replacement.append("; ");
replacement.append(HttpHeaders.Values.BOUNDARY);
replacement.append('=');
replacement.append(multipartMixedBoundary);
replacement.append("\r\n\r\n");
replacement.append("--");
replacement.append(multipartMixedBoundary);
replacement.append("\r\n");
replacement.append(HttpPostBodyUtil.CONTENT_DISPOSITION);
replacement.append(": ");
replacement.append(HttpPostBodyUtil.FILE);
replacement.append("; ");
replacement.append(HttpPostBodyUtil.FILENAME);
replacement.append("=\"");
replacement.append(fileUpload.getFilename());
replacement.append("\"\r\n");
pastAttribute.setValue(replacement.toString(), 1); pastAttribute.setValue(replacement.toString(), 1);
// update past size // update past size
globalBodySize += pastAttribute.size(); globalBodySize += pastAttribute.size();
@ -664,9 +689,9 @@ public class HttpPostRequestEncoder implements ChunkedInput<HttpContent> {
headers.remove(HttpHeaders.Names.CONTENT_TYPE); headers.remove(HttpHeaders.Names.CONTENT_TYPE);
for (String contentType : contentTypes) { for (String contentType : contentTypes) {
// "multipart/form-data; boundary=--89421926422648" // "multipart/form-data; boundary=--89421926422648"
if (contentType.toLowerCase().startsWith(HttpHeaders.Values.MULTIPART_FORM_DATA)) { String lowercased = contentType.toLowerCase();
// ignore if (lowercased.startsWith(HttpHeaders.Values.MULTIPART_FORM_DATA) ||
} else if (contentType.toLowerCase().startsWith(HttpHeaders.Values.APPLICATION_X_WWW_FORM_URLENCODED)) { lowercased.startsWith(HttpHeaders.Values.APPLICATION_X_WWW_FORM_URLENCODED)) {
// ignore // ignore
} else { } else {
headers.add(HttpHeaders.Names.CONTENT_TYPE, contentType); headers.add(HttpHeaders.Names.CONTENT_TYPE, contentType);