【问题标题】:Httget request using HttpClient 4.5使用 HttpClient 4.5 的 Httget 请求
【发布时间】:2015-08-12 14:19:10
【问题描述】:

我正在尝试更新使用 HttpClient 4.5 的代码,使其没有弃用的方法,但完全找不到解决方案,我完全迷失了。

这是我的代码:

public int sendGetHTTP() throws QAException, IOException {
    HttpResponse httpResponse = null;
    try {
        DefaultHttpClient client = new DefaultHttpClient();
        InputStream is = new FileInputStream("my");

        CertificateFactory cf = CertificateFactory.getInstance("X.509");
        X509Certificate caCert = (X509Certificate)cf.generateCertificate(is);

        TrustManagerFactory tmf = TrustManagerFactory
            .getInstance(TrustManagerFactory.getDefaultAlgorithm());
        KeyStore ks = KeyStore.getInstance(KeyStore.getDefaultType());
        ks.load(null);
        ks.setCertificateEntry("cert", caCert);

        tmf.init(ks);

        SSLContext sslContext = SSLContext.getInstance("TLS");
        sslContext.init(null, tmf.getTrustManagers(), null);

        SSLSocketFactory sf = new SSLSocketFactory(sslContext);
        sf.setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
        Scheme scheme = new Scheme("https", sf, 444);
        client.getConnectionManager().getSchemeRegistry().register(scheme);
        client.getParams().setParameter(ClientPNames.COOKIE_POLICY, CookiePolicy.BROWSER_COMPATIBILITY);
        HttpGet httpGet = new HttpGet("https://mysite:444/en.html");
        httpGet.addHeader("SSO-EMPLOYEENUMBER", "1234");
        httpResponse = client.execute(httpGet);
    } catch (Exception e) {
        e.printStackTrace();
    }
    int status = httpResponse.getStatusLine().getStatusCode();
    if (status != HTTP_STATUS_OK && status != HTTP_STATUS_CREATED) {
        throw new QAException("Server Response: " + status + ": " + httpResponse.getStatusLine().getReasonPhrase());
    }
    return status;
}

如何将此代码更改为不包含已弃用的方法和实例(如DefaultHttpClient)?

我可以阅读任何有用的文档吗?

【问题讨论】:

    标签: java ssl httpclient


    【解决方案1】:

    Apache 维护一个deprecated list

    您可以查看该列表以查看他们建议您用什么替换它,以及不推荐使用它的客户端版本。

    对于 DefaultHttpClient,他们推荐

    org.apache.http.impl.client.DefaultHttpClient (4.3) 使用 HttpClientBuilder 参见 CloseableHttpClient。

    您也可以访问HttpComponents Home Page,其中包含示例和文档的链接

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-10-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-03
      • 2011-03-13
      • 1970-01-01
      • 2021-12-09
      相关资源
      最近更新 更多