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, 14078👍, 1💬
Popular Posts:
What Is javamail1_1_3.zip? javamail1_1_3.zip is the binary package of JavaMail API 1.1.3 in ZIP form...
ANTLR is a powerful parser generator for multiple programming languages including Java. ANTLR contai...
How to download and install JDK (Java Development Kit) 5? If you want to write Java applications, yo...
What Is commons-logging-1.2.jar? commons-logging-1.2.jar is the JAR file for Apache Commons Logging ...
The Bouncy Castle Crypto package is a Java implementation of cryptographic algorithms, it was develo...