Categories:
Audio (13)
Biotech (29)
Bytecode (36)
Database (77)
Framework (7)
Game (7)
General (507)
Graphics (53)
I/O (35)
IDE (2)
JAR Tools (101)
JavaBeans (21)
JDBC (121)
JDK (426)
JSP (20)
Logging (108)
Mail (58)
Messaging (8)
Network (84)
PDF (97)
Report (7)
Scripting (84)
Security (32)
Server (121)
Servlet (26)
SOAP (24)
Testing (54)
Web (15)
XML (309)
Collections:
Other Resources:
HttpComponents Client Source Code Files
HttpComponents Client Source Code Files are provided in the
source package file, httpcomponents-client-5.2-src.zip.
You can download httpcomponents-client-5.2-src.zip as described in the previous tutorial and go to the "httpclient5/src" sub-folder to view Source Code files.
You can also browse HttpComponents Client Source Code below:
✍: FYIcenter.com
⏎ org/apache/hc/client5/http/entity/mime/HttpRFC7578Multipart.java
/* * ==================================================================== * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. * ==================================================================== * * This software consists of voluntary contributions made by many * individuals on behalf of the Apache Software Foundation. For more * information on the Apache Software Foundation, please see * <http://www.apache.org/>. * */ package org.apache.hc.client5.http.entity.mime; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.OutputStream; import java.nio.charset.Charset; import java.nio.charset.CharsetEncoder; import java.nio.charset.StandardCharsets; import java.util.BitSet; import java.util.List; import org.apache.hc.core5.http.NameValuePair; import org.apache.hc.core5.util.ByteArrayBuffer; class HttpRFC7578Multipart extends AbstractMultipartFormat { private static final PercentCodec PERCENT_CODEC = new PercentCodec(); private final List<MultipartPart> parts; public HttpRFC7578Multipart( final Charset charset, final String boundary, final List<MultipartPart> parts) { super(charset, boundary); this.parts = parts; } @Override public List<MultipartPart> getParts() { return parts; } @Override protected void formatMultipartHeader(final MultipartPart part, final OutputStream out) throws IOException { for (final MimeField field: part.getHeader()) { if (MimeConsts.CONTENT_DISPOSITION.equalsIgnoreCase(field.getName())) { writeBytes(field.getName(), charset, out); writeBytes(FIELD_SEP, out); writeBytes(field.getValue(), out); final List<NameValuePair> parameters = field.getParameters(); for (int i = 0; i < parameters.size(); i++) { final NameValuePair parameter = parameters.get(i); final String name = parameter.getName(); final String value = parameter.getValue(); writeBytes("; ", out); writeBytes(name, out); writeBytes("=\"", out); if (value != null) { if (name.equalsIgnoreCase(MimeConsts.FIELD_PARAM_FILENAME)) { out.write(PERCENT_CODEC.encode(value.getBytes(charset))); } else { writeBytes(value, out); } } writeBytes("\"", out); } writeBytes(CR_LF, out); } else { writeField(field, charset, out); } } } static class PercentCodec { private static final byte ESCAPE_CHAR = '%'; private static final BitSet ALWAYSENCODECHARS = new BitSet(); static { ALWAYSENCODECHARS.set(' '); ALWAYSENCODECHARS.set('%'); } /** * Percent-Encoding implementation based on RFC 3986 */ public byte[] encode(final byte[] bytes) { if (bytes == null) { return null; } final CharsetEncoder characterSetEncoder = StandardCharsets.US_ASCII.newEncoder(); final ByteArrayOutputStream buffer = new ByteArrayOutputStream(); for (final byte c : bytes) { int b = c; if (b < 0) { b = 256 + b; } if (characterSetEncoder.canEncode((char) b) && !ALWAYSENCODECHARS.get(c)) { buffer.write(b); } else { buffer.write(ESCAPE_CHAR); final char hex1 = hexDigit(b >> 4); final char hex2 = hexDigit(b); buffer.write(hex1); buffer.write(hex2); } } return buffer.toByteArray(); } public byte[] decode(final byte[] bytes) { if (bytes == null) { return null; } final ByteArrayBuffer buffer = new ByteArrayBuffer(bytes.length); for (int i = 0; i < bytes.length; i++) { final int b = bytes[i]; if (b == ESCAPE_CHAR) { if (i >= bytes.length - 2) { throw new IllegalArgumentException("Invalid encoding: too short"); } final int u = digit16(bytes[++i]); final int l = digit16(bytes[++i]); buffer.append((char) ((u << 4) + l)); } else { buffer.append(b); } } return buffer.toByteArray(); } } /** * Radix used in encoding and decoding. */ private static final int RADIX = 16; /** * Returns the numeric value of the character {@code b} in radix 16. * * @param b * The byte to be converted. * @return The numeric value represented by the character in radix 16. * * @throws IllegalArgumentException * Thrown when the byte is not valid per {@link Character#digit(char,int)} */ static int digit16(final byte b) { final int i = Character.digit((char) b, RADIX); if (i == -1) { throw new IllegalArgumentException("Invalid encoding: not a valid digit (radix " + RADIX + "): " + b); } return i; } /** * Returns the upper case hex digit of the lower 4 bits of the int. * * @param b the input int * @return the upper case hex digit of the lower 4 bits of the int. */ static char hexDigit(final int b) { return Character.toUpperCase(Character.forDigit(b & 0xF, RADIX)); } }
⏎ org/apache/hc/client5/http/entity/mime/HttpRFC7578Multipart.java
Or download all them as a single archive file:
File name: httpclient5-5.2-fyi.zip File size: 625318 bytes Release date: 2022-11-10 Download
⇒ Download and Install HttpComponents Core Binary Package
⇐ Download and Install HttpComponents Client Source Package
2023-03-26, 9681👍, 1💬
Popular Posts:
What Is mail.jar of JavaMail 1.4? I got the JAR file from javamail-1_4.zip. mail.jar in javamail-1_4...
How to download and install JDK (Java Development Kit) 8? If you want to write Java applications, yo...
Java Architecture for XML Binding (JAXB) is a Java API that allows Java developers to map Java class...
JDK 11 jdk.compiler.jmod is the JMOD file for JDK 11 Compiler tool, which can be invoked by the "jav...
JRE 8 rt.jar is the JAR file for JRE 8 RT (Runtime) libraries. JRE (Java Runtime) 8 is the runtime e...