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/config/TlsConfig.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.config; import java.util.Arrays; import java.util.concurrent.TimeUnit; import org.apache.hc.core5.annotation.Contract; import org.apache.hc.core5.annotation.ThreadingBehavior; import org.apache.hc.core5.http.ssl.TLS; import org.apache.hc.core5.http2.HttpVersionPolicy; import org.apache.hc.core5.util.Timeout; /** * Immutable class encapsulating TLS protocol settings. * * @since 5.2 */ @Contract(threading = ThreadingBehavior.IMMUTABLE) public class TlsConfig implements Cloneable { public static final TlsConfig DEFAULT = new Builder().build(); private final Timeout handshakeTimeout; private final String[] supportedProtocols; private final String[] supportedCipherSuites; private final HttpVersionPolicy httpVersionPolicy; /** * Intended for CDI compatibility */ protected TlsConfig() { this(null, null, null, null); } TlsConfig( final Timeout handshakeTimeout, final String[] supportedProtocols, final String[] supportedCipherSuites, final HttpVersionPolicy httpVersionPolicy) { super(); this.handshakeTimeout = handshakeTimeout; this.supportedProtocols = supportedProtocols; this.supportedCipherSuites = supportedCipherSuites; this.httpVersionPolicy = httpVersionPolicy; } /** * @see Builder#setHandshakeTimeout(Timeout) */ public Timeout getHandshakeTimeout() { return handshakeTimeout; } /** * @see Builder#setSupportedProtocols(String...) */ public String[] getSupportedProtocols() { return supportedProtocols != null ? supportedProtocols.clone() : null; } /** * @see Builder#setSupportedCipherSuites(String...) */ public String[] getSupportedCipherSuites() { return supportedCipherSuites != null ? supportedCipherSuites.clone() : null; } /** * @see Builder#setVersionPolicy(HttpVersionPolicy) */ public HttpVersionPolicy getHttpVersionPolicy() { return httpVersionPolicy; } @Override protected TlsConfig clone() throws CloneNotSupportedException { return (TlsConfig) super.clone(); } @Override public String toString() { final StringBuilder builder = new StringBuilder(); builder.append("["); builder.append("handshakeTimeout=").append(handshakeTimeout); builder.append(", supportedProtocols=").append(Arrays.toString(supportedProtocols)); builder.append(", supportedCipherSuites=").append(Arrays.toString(supportedCipherSuites)); builder.append(", httpVersionPolicy=").append(httpVersionPolicy); builder.append("]"); return builder.toString(); } public static TlsConfig.Builder custom() { return new Builder(); } public static TlsConfig.Builder copy(final TlsConfig config) { return new Builder() .setHandshakeTimeout(config.getHandshakeTimeout()) .setSupportedProtocols(config.getSupportedProtocols()) .setSupportedCipherSuites(config.getSupportedCipherSuites()) .setVersionPolicy(config.getHttpVersionPolicy()); } public static class Builder { private Timeout handshakeTimeout; private String[] supportedProtocols; private String[] supportedCipherSuites; private HttpVersionPolicy versionPolicy; /** * Determines the timeout used by TLS session negotiation exchanges (session handshake). * <p> * A timeout value of zero is interpreted as an infinite timeout. * </p> * <p> * Default: {@code null} (undefined) * </p> */ public Builder setHandshakeTimeout(final Timeout handshakeTimeout) { this.handshakeTimeout = handshakeTimeout; return this; } /** * @see #setHandshakeTimeout(Timeout) */ public Builder setHandshakeTimeout(final long handshakeTimeout, final TimeUnit timeUnit) { this.handshakeTimeout = Timeout.of(handshakeTimeout, timeUnit); return this; } /** * Determines supported TLS protocols. * <p> * Default: {@code null} (undefined) * </p> */ public Builder setSupportedProtocols(final String... supportedProtocols) { this.supportedProtocols = supportedProtocols; return this; } /** * Determines supported TLS protocols. * <p> * Default: {@code null} (undefined) * </p> */ public Builder setSupportedProtocols(final TLS... supportedProtocols) { this.supportedProtocols = new String[supportedProtocols.length]; for (int i = 0; i < supportedProtocols.length; i++) { final TLS protocol = supportedProtocols[i]; if (protocol != null) { this.supportedProtocols[i] = protocol.id; } } return this; } /** * Determines supported cipher suites. * <p> * Default: {@code null} (undefined) * </p> */ public Builder setSupportedCipherSuites(final String... supportedCipherSuites) { this.supportedCipherSuites = supportedCipherSuites; return this; } /** * Determines the HTTP protocol policy. By default, connections are expected to use TLS ALPN * extension to negotiate the application protocol to be used by both endpoints. * <p> * Default: {@link HttpVersionPolicy#NEGOTIATE} * </p> */ public Builder setVersionPolicy(final HttpVersionPolicy versionPolicy) { this.versionPolicy = versionPolicy; return this; } public TlsConfig build() { return new TlsConfig( handshakeTimeout, supportedProtocols, supportedCipherSuites, versionPolicy != null ? versionPolicy : HttpVersionPolicy.NEGOTIATE); } } }
⏎ org/apache/hc/client5/http/config/TlsConfig.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, 23064👍, 1💬
Popular Posts:
GJT (Giant Java Tree) implementation of XML Pull Parser. JAR File Size and Download Location: File n...
JDK 11 jdk.crypto.ec.jmod is the JMOD file for JDK 11 Crypto EC module. JDK 11 Crypto EC module comp...
Apache Commons Codec library provides implementations of common encoders and decoders such as Base64...
What Is activation.jar? I heard it's related to JAF (JavaBeans Activation Framework) 1.0.2? The if y...
How to merge two JAR files with "jar" commands? I am tired of specifying multiple JAR files in the c...