Library and examples of parsing multipart/form-data from inputstream

后端 未结 4 1094
清酒与你
清酒与你 2020-12-03 11:52

The response to one kind of HTTP request I send is a multipart/form-data looks something like:

--------boundary123
Content-Disposition: form-data; name=\"jso         


        
4条回答
  •  庸人自扰
    2020-12-03 12:29

    Example code using deprecated constructor:

    import java.io.ByteArrayInputStream;
    
    import org.apache.commons.fileupload.MultipartStream;
    
    public class MultipartTest {
    
        // Lines should end with CRLF
        public static final String MULTIPART_BODY =
                "Content-Type: multipart/form-data; boundary=--AaB03x\r\n"
                + "\r\n"
                + "----AaB03x\r\n"
                + "Content-Disposition: form-data; name=\"submit-name\"\r\n"
                + "\r\n"
                + "Larry\r\n"
                + "----AaB03x\r\n"
                + "Content-Disposition: form-data; name=\"files\"; filename=\"file1.txt\"\r\n"
                + "Content-Type: text/plain\r\n"
                + "\r\n"
                + "HELLO WORLD!\r\n"
                + "----AaB03x--\r\n";
    
        public static void main(String[] args) throws Exception {
    
            byte[] boundary = "--AaB03x".getBytes();
    
            ByteArrayInputStream content = new ByteArrayInputStream(MULTIPART_BODY.getBytes());
    
            @SuppressWarnings("deprecation")
            MultipartStream multipartStream =
                    new MultipartStream(content, boundary);
    
            boolean nextPart = multipartStream.skipPreamble();
            while (nextPart) {
                String header = multipartStream.readHeaders();
                System.out.println("");
                System.out.println("Headers:");
                System.out.println(header);
                System.out.println("Body:");
                multipartStream.readBodyData(System.out);
                System.out.println("");
                nextPart = multipartStream.readBoundary();
            }
        }
    }
    

提交回复
热议问题