Java 带代理的HttpSolrServer

Java 带代理的HttpSolrServer,java,solr,proxy,apache-httpclient-4.x,solrj,Java,Solr,Proxy,Apache Httpclient 4.x,Solrj,使用HttpSolrServer连接到Solr实例。试图通过代理运行此配置,但当前该配置看起来没有得到应用,它将继续使用baseUrl。代码如下: DefaultHttpClient httpClient = new DefaultHttpClient(); ModifiableSolrParams params = new ModifiableSolrParams(); params.set(HttpClientUtil.PROP_MAX_CONNECTIONS, 128); params.s

使用HttpSolrServer连接到Solr实例。试图通过代理运行此配置,但当前该配置看起来没有得到应用,它将继续使用baseUrl。代码如下:

DefaultHttpClient httpClient = new DefaultHttpClient();
ModifiableSolrParams params = new ModifiableSolrParams();
params.set(HttpClientUtil.PROP_MAX_CONNECTIONS, 128);
params.set(HttpClientUtil.PROP_MAX_CONNECTIONS_PER_HOST, 32);
params.set(HttpClientUtil.PROP_FOLLOW_REDIRECTS, false);
params.set(HttpClientUtil.PROP_CONNECTION_TIMEOUT, this.connectionTimeout);

httpClient.getCredentialsProvider().setCredentials(
        AuthScope.ANY,
        new UsernamePasswordCredentials(proxyUsername, proxyPassword)
);

HttpHost proxy = new HttpHost(proxyUrl, proxyPort, proxyProtocol);
httpClient.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY, proxy);


HttpSolrServer solrServer = new HttpSolrServer(baseUrl, httpClient);
还尝试:

RequestConfig requestConfig = RequestConfig.custom()
    .setConnectTimeout(this.connectionTimeout)
    .setConnectionRequestTimeout(this.connectionTimeout)
    .setSocketTimeout(this.connectionTimeout)
    .build();

HttpClientBuilder httpClientBuilder = HttpClients.custom()
    .setDefaultRequestConfig(requestConfig)
    .setMaxConnTotal(128)
    .setMaxConnPerRoute(32)
    .disableRedirectHandling();

HttpHost proxy = new HttpHost(proxyUrl, proxyPort, proxyProtocol);
DefaultProxyRoutePlanner routePlanner = new DefaultProxyRoutePlanner(proxy);
CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
credentialsProvider.setCredentials(
    new AuthScope(proxyUrl, proxyPort, AuthScope.ANY_REALM, "basic"),
    new UsernamePasswordCredentials(proxyUsername, proxyPassword));

httpClientBuilder
    .setDefaultCredentialsProvider(credentialsProvider)
    .setTargetAuthenticationStrategy(new ProxyAuthenticationStrategy())
    .setRoutePlanner(routePlanner);

CloseableHttpClient httpClient = httpClientBuilder.build();


HttpSolrServer solrServer = new HttpSolrServer(baseUrl, httpClient);
版本

  • SolrJ 4.7.2
  • HttpClient 4.3.1

您是否可以添加solr、sorj和http客户端jar用于上述内容的详细信息。您也可以检查自己,因为您连接到solr的方式与solr 5的方式不同。您是否设法解决了此问题?3年是一个漫长的时间对不起:您可以添加solr、sorj和http客户端jar用于上述用途的详细信息吗。您也可以检查自己,因为您连接solr的方式与solr 5的方式不同。您是否设法解决了此问题?3年是漫长的时间对不起:P