一个小东西...

本文提出了PathRobot项目的发展方向,包括增加多个机器人协同工作、实现机器人间的通信功能,并考虑通过Socket技术实现与其他程序的对接。
部署运行你感兴趣的模型镜像

PathRobot

http://vipexxe.googlepages.com/PathRobot.jar

什么有空,再加些功能,如:
多个机器人在上面活动,
机器人之间的相互通信,
还有就是用Socket加个网络接口,可以与别的程序对接.
认真写下去,应该挻好玩的...

您可能感兴趣的与本文相关的镜像

Anything-LLM

Anything-LLM

AI应用

AnythingLLM是一个全栈应用程序,可以使用商用或开源的LLM/嵌入器/语义向量数据库模型,帮助用户在本地或云端搭建个性化的聊天机器人系统,且无需复杂设置

你说得对,在 **Apache HttpClient 5.x** 中,并没有 `PoolConcurrencyPolicy.STANDARD` 这个枚举或类。这是因为在 **HttpClient 5.1+** 才开始引入 `PoolConcurrencyPolicy`,并且在不同版本中 API 有细微变化。 --- ## ✅ 正确方式:HttpClient 5 中配置连接池 HttpClient 5 的连接池管理器 `PoolingHttpClientConnectionManager` 在 **5.0.x** 和 **5.1+** 中构造方式不同。 --- ### ✅ HttpClient 5.0.x 构造连接池方式 如果你使用的是 **HttpClient 5.0.x**(例如 5.0.3),构造 `PoolingHttpClientConnectionManager` 的方式如下: ```java import org.apache.hc.client5.http.impl.io.PoolingHttpClientConnectionManager; import org.apache.hc.client5.http.ssl.SSLConnectionSocketFactory; import org.apache.hc.core5.http.io.SocketConfig; import org.apache.hc.core5.pool.PoolConcurrencyPolicy; import org.apache.hc.core5.util.TimeValue; PoolingHttpClientConnectionManager connManager = new PoolingHttpClientConnectionManager( RegistryBuilder.<ConnectionSocketFactory>create() .register("http", PlainConnectionSocketFactory.getSocketFactory()) .register("https", sslSocketFactory) .build(), null, // DnsResolver null, // ConnectionFactory TimeValue.ofSeconds(10), // Validate after inactivity null // ConnectionPoolListener ); ``` --- ### ✅ HttpClient 5.1+ 使用 `PoolConcurrencyPolicy` 如果你使用的是 **HttpClient 5.1+**,你可以使用 `PoolConcurrencyPolicy` 来指定并发策略: ```java PoolingHttpClientConnectionManager connManager = new PoolingHttpClientConnectionManager( RegistryBuilder.<ConnectionSocketFactory>create() .register("http", PlainConnectionSocketFactory.getSocketFactory()) .register("https", sslSocketFactory) .build(), PoolConcurrencyPolicy.STANDARD, // 或者 LAX / STRICT null, TimeValue.ofSeconds(10), null ); ``` 但如果你的版本不支持这个参数(比如 5.0.x),**可以直接使用无并发策略的构造函数**。 --- ## ✅ 适配 HttpClient 5.0.x 的完整示例 以下是一个适配 **HttpClient 5.0.x** 的连接池配置代码: ```java import org.apache.hc.client5.http.config.RequestConfig; import org.apache.hc.client5.http.impl.classic.CloseableHttpClient; import org.apache.hc.client5.http.impl.classic.HttpClients; import org.apache.hc.client5.http.ssl.SSLConnectionSocketFactory; import org.apache.hc.core5.http.io.SocketConfig; import org.apache.hc.core5.pool.PoolingHttpClientConnectionManager; import org.apache.hc.core5.ssl.SSLContexts; import org.apache.hc.core5.util.Timeout; import org.apache.hc.core5.util.TimeValue; import javax.net.ssl.*; import java.security.KeyManagementException; import java.security.NoSuchAlgorithmException; import java.security.cert.X509Certificate; public class HttpClient5IgnoreSSL { public static CloseableHttpClient createIgnoreVerifyClient() { try { // Step 1: 创建信任所有证书的 TrustManager X509TrustManager trustManager = new X509TrustManager() { public void checkClientTrusted(X509Certificate[] chain, String authType) {} public void checkServerTrusted(X509Certificate[] chain, String authType) {} public X509Certificate[] getAcceptedIssuers() { return new X509Certificate[0]; } }; SSLContext sslContext = SSLContexts.custom() .loadTrustMaterial(trustManager) .build(); // Step 2: 创建 HostnameVerifier 忽略验证 HostnameVerifier hostnameVerifier = (hostname, session) -> true; SSLConnectionSocketFactory sslSocketFactory = new SSLConnectionSocketFactory( sslContext, hostnameVerifier ); // Step 3: 创建连接池管理器(HttpClient 5.0.x 构造方式) PoolingHttpClientConnectionManager connManager = new PoolingHttpClientConnectionManager( RegistryBuilder.<ConnectionSocketFactory>create() .register("http", PlainConnectionSocketFactory.getSocketFactory()) .register("https", sslSocketFactory) .build(), null, // DnsResolver null, // ConnectionFactory TimeValue.ofSeconds(10) // Validate after inactivity ); connManager.setMaxTotal(100); connManager.setDefaultMaxPerRoute(20); // Step 4: 请求配置 RequestConfig requestConfig = RequestConfig.custom() .setConnectTimeout(Timeout.ofSeconds(10)) .setResponseTimeout(Timeout.ofSeconds(30)) .setConnectionRequestTimeout(Timeout.ofSeconds(5)) .build(); return HttpClients.custom() .setSSLSocketFactory(sslSocketFactory) .setConnectionManager(connManager) .setDefaultRequestConfig(requestConfig) .build(); } catch (NoSuchAlgorithmException | KeyManagementException e) { throw new RuntimeException("Failed to create HttpClient", e); } } } ``` --- ## ✅ 小结 | 问题 | 解决方式 | |------|----------| | `PoolConcurrencyPolicy.STANDARD` 不存在 | 可能是版本太低(5.0.x),直接使用无并发策略的构造函数 | | `BROWSER_COMPATIBLE_HOSTNAME_VERIFIER` 不存在 | 改用 Java 原生 `HostnameVerifier` | | SSLContext 创建方式 | 使用 `SSLContexts.custom()` | | 设置 SSL 工厂 | 使用 `.setSSLSocketFactory()` | --- ## ✅ 检查 HttpClient 版本建议 如果你使用的是 Maven,建议升级到 **HttpClient 5.1+**,以获得更好的 API 支持: ```xml <dependency> <groupId>org.apache.httpcomponents.client5</groupId> <artifactId>httpclient5</artifactId> <version>5.2.1</version> </dependency> ``` ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值