gpt4 book ai didi

java - 当大部分设置是静态完成时使用不同的 http 方案端口

转载 作者:行者123 更新时间:2023-12-01 19:22:37 25 4
gpt4 key购买 nike

使用:org.apache.http

我使用以下代码来下载文件,大部分 url 设置都是静态完成的,以节省每次创建对象的时间。

    private static final HttpClient httpClient;

static {
HttpParams params = new BasicHttpParams();
HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1);
HttpProtocolParams.setContentCharset(params, HTTP.UTF_8);
HttpProtocolParams.setUseExpectContinue(params, false);
HttpConnectionParams.setConnectionTimeout(params, 10000);
HttpConnectionParams.setSoTimeout(params, 10000);
ConnManagerParams.setMaxTotalConnections(params, 100);
ConnManagerParams.setTimeout(params, 30000);

SchemeRegistry registry = new SchemeRegistry();
registry.register(new Scheme("http",PlainSocketFactory.getSocketFactory(), 80)); //TODO port and schema should be coming from the strings file
ThreadSafeClientConnManager manager = new ThreadSafeClientConnManager(params, registry);
httpClient = new DefaultHttpClient(manager, params);
//httpClient.getParams().setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, 30000);
}

我可以使用它来调用它

private HttpUrlRequest(String host, int port, String path, List<NameValuePair> query,  List<NameValuePair> post)

我希望调用者能够指定 URL 的端口号。但因为

registry.register(new Scheme("http",PlainSocketFactory.getSocketFactory(), 80));

是静态指定的,我是否也必须更改该端口号?我该如何解决这个问题?

最佳答案

Scheme 指定的端口是默认端口,不一定是实际连接中使用的端口。可以在每个请求 URL 中指定端口。例如,如果Scheme默认端口是80,但请求URL是http://address.com:8080 ,则使用 8080。如果 URL 中未指定端口,则使用默认端口。

关于java - 当大部分设置是静态完成时使用不同的 http 方案端口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3289414/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com