Java 类io.netty.handler.codec.http.multipart.HttpPostRequestDecoder.NotEnoughDataDecoderException 实例源码

项目:netty-netty-5.0.0.Alpha1    文件:HttpPostMultipartRequestDecoder.java   
/**
 * Read one line up to the CRLF or LF
 *
 * @return the String from one line
 * @throws NotEnoughDataDecoderException
 *             Need more chunks and reset the readerInder to the previous
 *             value
 */
private String readLineStandard() {
    int readerIndex = undecodedChunk.readerIndex();
    try {
        ByteBuf line = buffer(64);

        while (undecodedChunk.isReadable()) {
            byte nextByte = undecodedChunk.readByte();
            if (nextByte == HttpConstants.CR) {
                nextByte = undecodedChunk.readByte();
                if (nextByte == HttpConstants.LF) {
                    return line.toString(charset);
                }
            } else if (nextByte == HttpConstants.LF) {
                return line.toString(charset);
            } else {
                line.writeByte(nextByte);
            }
        }
    } catch (IndexOutOfBoundsException e) {
        undecodedChunk.readerIndex(readerIndex);
        throw new NotEnoughDataDecoderException(e);
    }
    undecodedChunk.readerIndex(readerIndex);
    throw new NotEnoughDataDecoderException();
}
项目:netty4.0.27Learn    文件:HttpPostStandardRequestDecoder.java   
/**
 * This getMethod returns the first InterfaceHttpData with the given name from
 * body.<br>
 *
 * If chunked, all chunks must have been offered using offer() getMethod. If
 * not, NotEnoughDataDecoderException will be raised.
 *
 * @return The first Body InterfaceHttpData with the given name (ignore
 *         case)
 * @throws NotEnoughDataDecoderException
 *             need more chunks
 */
@Override
public InterfaceHttpData getBodyHttpData(String name) {
    checkDestroyed();

    if (!isLastChunk) {
        throw new NotEnoughDataDecoderException();
    }
    List<InterfaceHttpData> list = bodyMapHttpData.get(name);
    if (list != null) {
        return list.get(0);
    }
    return null;
}
项目:netty4.0.27Learn    文件:HttpPostMultipartRequestDecoder.java   
/**
 * This getMethod returns the first InterfaceHttpData with the given name from
 * body.<br>
 *
 * If chunked, all chunks must have been offered using offer() getMethod. If
 * not, NotEnoughDataDecoderException will be raised.
 *
 * @return The first Body InterfaceHttpData with the given name (ignore
 *         case)
 * @throws NotEnoughDataDecoderException
 *             need more chunks
 */
@Override
public InterfaceHttpData getBodyHttpData(String name) {
    checkDestroyed();

    if (!isLastChunk) {
        throw new NotEnoughDataDecoderException();
    }
    List<InterfaceHttpData> list = bodyMapHttpData.get(name);
    if (list != null) {
        return list.get(0);
    }
    return null;
}
项目:netty4.0.27Learn    文件:HttpPostMultipartRequestDecoder.java   
/**
 * Read one line up to the CRLF or LF
 *
 * @return the String from one line
 * @throws NotEnoughDataDecoderException
 *             Need more chunks and reset the readerInder to the previous
 *             value
 */
private String readLineStandard() {
    int readerIndex = undecodedChunk.readerIndex();
    try {
        ByteBuf line = buffer(64);

        while (undecodedChunk.isReadable()) {
            byte nextByte = undecodedChunk.readByte();
            if (nextByte == HttpConstants.CR) {
                // check but do not changed readerIndex
                nextByte = undecodedChunk.getByte(undecodedChunk.readerIndex());
                if (nextByte == HttpConstants.LF) {
                    // force read
                    undecodedChunk.readByte();
                    return line.toString(charset);
                } else {
                    // Write CR (not followed by LF)
                    line.writeByte(HttpConstants.CR);
                }
            } else if (nextByte == HttpConstants.LF) {
                return line.toString(charset);
            } else {
                line.writeByte(nextByte);
            }
        }
    } catch (IndexOutOfBoundsException e) {
        undecodedChunk.readerIndex(readerIndex);
        throw new NotEnoughDataDecoderException(e);
    }
    undecodedChunk.readerIndex(readerIndex);
    throw new NotEnoughDataDecoderException();
}
项目:netty-netty-5.0.0.Alpha1    文件:HttpPostStandardRequestDecoder.java   
/**
 * This getMethod returns the first InterfaceHttpData with the given name from
 * body.<br>
 *
 * If chunked, all chunks must have been offered using offer() getMethod. If
 * not, NotEnoughDataDecoderException will be raised.
 *
 * @return The first Body InterfaceHttpData with the given name (ignore
 *         case)
 * @throws NotEnoughDataDecoderException
 *             need more chunks
 */
@Override
public InterfaceHttpData getBodyHttpData(String name) {
    checkDestroyed();

    if (!isLastChunk) {
        throw new NotEnoughDataDecoderException();
    }
    List<InterfaceHttpData> list = bodyMapHttpData.get(name);
    if (list != null) {
        return list.get(0);
    }
    return null;
}
项目:netty-netty-5.0.0.Alpha1    文件:HttpPostMultipartRequestDecoder.java   
/**
 * This getMethod returns the first InterfaceHttpData with the given name from
 * body.<br>
 *
 * If chunked, all chunks must have been offered using offer() getMethod. If
 * not, NotEnoughDataDecoderException will be raised.
 *
 * @return The first Body InterfaceHttpData with the given name (ignore
 *         case)
 * @throws NotEnoughDataDecoderException
 *             need more chunks
 */
@Override
public InterfaceHttpData getBodyHttpData(String name) {
    checkDestroyed();

    if (!isLastChunk) {
        throw new NotEnoughDataDecoderException();
    }
    List<InterfaceHttpData> list = bodyMapHttpData.get(name);
    if (list != null) {
        return list.get(0);
    }
    return null;
}
项目:netty-netty-5.0.0.Alpha1    文件:HttpPostMultipartRequestDecoder.java   
/**
 * Find the next Multipart Delimiter
 *
 * @param delimiter
 *            delimiter to find
 * @param dispositionStatus
 *            the next getStatus if the delimiter is a start
 * @param closeDelimiterStatus
 *            the next getStatus if the delimiter is a close delimiter
 * @return the next InterfaceHttpData if any
 * @throws ErrorDataDecoderException
 */
private InterfaceHttpData findMultipartDelimiter(String delimiter, MultiPartStatus dispositionStatus,
        MultiPartStatus closeDelimiterStatus) {
    // --AaB03x or --AaB03x--
    int readerIndex = undecodedChunk.readerIndex();
    try {
        skipControlCharacters();
    } catch (NotEnoughDataDecoderException e1) {
        undecodedChunk.readerIndex(readerIndex);
        return null;
    }
    skipOneLine();
    String newline;
    try {
        newline = readDelimiter(delimiter);
    } catch (NotEnoughDataDecoderException e) {
        undecodedChunk.readerIndex(readerIndex);
        return null;
    }
    if (newline.equals(delimiter)) {
        currentStatus = dispositionStatus;
        return decodeMultipart(dispositionStatus);
    }
    if (newline.equals(delimiter + "--")) {
        // CLOSEDELIMITER or MIXED CLOSEDELIMITER found
        currentStatus = closeDelimiterStatus;
        if (currentStatus == MultiPartStatus.HEADERDELIMITER) {
            // MIXEDCLOSEDELIMITER
            // end of the Mixed part
            currentFieldAttributes = null;
            return decodeMultipart(MultiPartStatus.HEADERDELIMITER);
        }
        return null;
    }
    undecodedChunk.readerIndex(readerIndex);
    throw new ErrorDataDecoderException("No Multipart delimiter found");
}
项目:netty4.0.27Learn    文件:HttpPostStandardRequestDecoder.java   
/**
 * This getMethod returns a List of all HttpDatas from body.<br>
 *
 * If chunked, all chunks must have been offered using offer() getMethod. If
 * not, NotEnoughDataDecoderException will be raised.
 *
 * @return the list of HttpDatas from Body part for POST getMethod
 * @throws NotEnoughDataDecoderException
 *             Need more chunks
 */
@Override
public List<InterfaceHttpData> getBodyHttpDatas() {
    checkDestroyed();

    if (!isLastChunk) {
        throw new NotEnoughDataDecoderException();
    }
    return bodyListHttpData;
}
项目:netty4.0.27Learn    文件:HttpPostStandardRequestDecoder.java   
/**
 * This getMethod returns a List of all HttpDatas with the given name from
 * body.<br>
 *
 * If chunked, all chunks must have been offered using offer() getMethod. If
 * not, NotEnoughDataDecoderException will be raised.
 *
 * @return All Body HttpDatas with the given name (ignore case)
 * @throws NotEnoughDataDecoderException
 *             need more chunks
 */
@Override
public List<InterfaceHttpData> getBodyHttpDatas(String name) {
    checkDestroyed();

    if (!isLastChunk) {
        throw new NotEnoughDataDecoderException();
    }
    return bodyMapHttpData.get(name);
}
项目:netty4.0.27Learn    文件:HttpPostMultipartRequestDecoder.java   
/**
 * This getMethod returns a List of all HttpDatas from body.<br>
 *
 * If chunked, all chunks must have been offered using offer() getMethod. If
 * not, NotEnoughDataDecoderException will be raised.
 *
 * @return the list of HttpDatas from Body part for POST getMethod
 * @throws NotEnoughDataDecoderException
 *             Need more chunks
 */
@Override
public List<InterfaceHttpData> getBodyHttpDatas() {
    checkDestroyed();

    if (!isLastChunk) {
        throw new NotEnoughDataDecoderException();
    }
    return bodyListHttpData;
}
项目:netty4.0.27Learn    文件:HttpPostMultipartRequestDecoder.java   
/**
 * This getMethod returns a List of all HttpDatas with the given name from
 * body.<br>
 *
 * If chunked, all chunks must have been offered using offer() getMethod. If
 * not, NotEnoughDataDecoderException will be raised.
 *
 * @return All Body HttpDatas with the given name (ignore case)
 * @throws NotEnoughDataDecoderException
 *             need more chunks
 */
@Override
public List<InterfaceHttpData> getBodyHttpDatas(String name) {
    checkDestroyed();

    if (!isLastChunk) {
        throw new NotEnoughDataDecoderException();
    }
    return bodyMapHttpData.get(name);
}
项目:netty-netty-5.0.0.Alpha1    文件:HttpPostStandardRequestDecoder.java   
/**
 * This getMethod returns a List of all HttpDatas from body.<br>
 *
 * If chunked, all chunks must have been offered using offer() getMethod. If
 * not, NotEnoughDataDecoderException will be raised.
 *
 * @return the list of HttpDatas from Body part for POST getMethod
 * @throws NotEnoughDataDecoderException
 *             Need more chunks
 */
@Override
public List<InterfaceHttpData> getBodyHttpDatas() {
    checkDestroyed();

    if (!isLastChunk) {
        throw new NotEnoughDataDecoderException();
    }
    return bodyListHttpData;
}
项目:netty-netty-5.0.0.Alpha1    文件:HttpPostStandardRequestDecoder.java   
/**
 * This getMethod returns a List of all HttpDatas with the given name from
 * body.<br>
 *
 * If chunked, all chunks must have been offered using offer() getMethod. If
 * not, NotEnoughDataDecoderException will be raised.
 *
 * @return All Body HttpDatas with the given name (ignore case)
 * @throws NotEnoughDataDecoderException
 *             need more chunks
 */
@Override
public List<InterfaceHttpData> getBodyHttpDatas(String name) {
    checkDestroyed();

    if (!isLastChunk) {
        throw new NotEnoughDataDecoderException();
    }
    return bodyMapHttpData.get(name);
}
项目:netty-netty-5.0.0.Alpha1    文件:HttpPostMultipartRequestDecoder.java   
/**
 * This getMethod returns a List of all HttpDatas from body.<br>
 *
 * If chunked, all chunks must have been offered using offer() getMethod. If
 * not, NotEnoughDataDecoderException will be raised.
 *
 * @return the list of HttpDatas from Body part for POST getMethod
 * @throws NotEnoughDataDecoderException
 *             Need more chunks
 */
@Override
public List<InterfaceHttpData> getBodyHttpDatas() {
    checkDestroyed();

    if (!isLastChunk) {
        throw new NotEnoughDataDecoderException();
    }
    return bodyListHttpData;
}
项目:netty-netty-5.0.0.Alpha1    文件:HttpPostMultipartRequestDecoder.java   
/**
 * This getMethod returns a List of all HttpDatas with the given name from
 * body.<br>
 *
 * If chunked, all chunks must have been offered using offer() getMethod. If
 * not, NotEnoughDataDecoderException will be raised.
 *
 * @return All Body HttpDatas with the given name (ignore case)
 * @throws NotEnoughDataDecoderException
 *             need more chunks
 */
@Override
public List<InterfaceHttpData> getBodyHttpDatas(String name) {
    checkDestroyed();

    if (!isLastChunk) {
        throw new NotEnoughDataDecoderException();
    }
    return bodyMapHttpData.get(name);
}