Curl успешен, но HttpClient генерирует исключение SocketTimeoutException - PullRequest
0 голосов
/ 18 января 2020

Я пытаюсь подключиться к серверу через PROXY и получить содержимое html. Для этого я использую java HttpClient (для http и https url). Я могу успешно сканировать с помощью curl , где HttpClient создает исключение SocketTimeoutException.

Код HttpClient:

    httpclient = HttpClientBuilder.create().build();   
    String domain = HttpUtil.getDomainName(url);
    Proxy pData = <proxy object>
    HttpHost proxyHost = new HttpHost(pData.getProxy(), Integer.parseInt(pData.getPort()));

    RequestConfig.Builder configBuilder = RequestConfig.custom()
            .setProxy(proxy)
            .setConnectTimeout(40 * 1000)
            .setSocketTimeout(40 * 1000)
            .setConnectionRequestTimeout(40 * 1000)
            .setCookieSpec("Standard");

    RequestConfig config = configBuilder.build();

    CredentialsProvider credentialProvider = new BasicCredentialsProvider();
    AuthScope as = new AuthScope(pData.getProxy(), Integer.parseInt(pData.getPort()));
    credentialProvider.setCredentials(as, new UsernamePasswordCredentials(pData.getUsername(), pData.getPassword()));

    HttpClientContext context = HttpClientContext.create();
    context.setUserToken(UUID.randomUUID().toString());
    context.setCredentialsProvider(credentialProvider);
    context.setRequestConfig(config);

    HttpGet request = new HttpGet(url);


    List<Pair<String, String>> headers = pData.getHeaders();

    HttpUtil.populateHeaders(request, headers);


    request.setConfig(config);
    CloseableHttpResponse response = httpclient.execute(request, context);

Команда curl:

curl --verbose -k <target url> -H <list of headers> --proxy <proxy url with authentication> --compressed

Может кто-нибудь помочь мне понять, в чем заключается ошибка в коде HttpClient?

...