android 4.4中没有可用的对等证书-代码在android 6中有效

android 4.4中没有可用的对等证书-代码在android 6中有效,android,ssl,apache-httpclient-4.x,Android,Ssl,Apache Httpclient 4.x,我正在努力解决一个问题,即调用POST URL来获取oAuth令牌。我正在使用HTTPClient向URL发送请求以获取oauth访问令牌。它在Android 6及以上版本中运行良好。当在android 5或更低版本中尝试时,同样的情况不会给我任何可用的对等证书例外。下面是代码,我在Stackoverflow中尝试了很多答案,但无法解决我的问题:( 您的服务器可能使用的SSL证书在早期的Android版本上不受信任。如何知道它,因为旧的Android版本不信任该证书?是否可以忽略早期版本中的证书

我正在努力解决一个问题,即调用POST URL来获取oAuth令牌。我正在使用HTTPClient向URL发送请求以获取oauth访问令牌。它在Android 6及以上版本中运行良好。当在android 5或更低版本中尝试时,同样的情况不会给我任何可用的对等证书例外。下面是代码,我在Stackoverflow中尝试了很多答案,但无法解决我的问题:(


您的服务器可能使用的SSL证书在早期的Android版本上不受信任。如何知道它,因为旧的Android版本不信任该证书?是否可以忽略早期版本中的证书?我也尝试了HTTP URL连接,但它给了我501响应代码:(
    httpClient = new DefaultHttpClient();
    httpPost = new HttpPost(address);


    params.add(new BasicNameValuePair("code", token));
    params.add(new BasicNameValuePair("redirect_uri", ""));
    params.add(new BasicNameValuePair("grant_type", ""));

    String encoding = Base64.encodeToString("".getBytes(), Base64.DEFAULT);
    //httpPost.setHeader("Authorization", "Basic =");

    String auth = "" + ":" + "";
    byte[] encodedAuth = org.apache.commons.codec.binary.Base64.encodeBase64(auth.getBytes(Charset.forName("ISO-8859-1")));
    String authHeader = "Basic " + new String(encodedAuth);
    httpPost.setHeader("Authorization", authHeader);


    httpPost.setHeader("Content-Type", "application/x-www-form-urlencoded");
    httpPost.setEntity(new UrlEncodedFormEntity(params));

    //httpPost.setParams(params);
    HttpResponse httpResponse = httpClient.execute(httpPost);
    HttpEntity httpEntity = httpResponse.getEntity();

    is = httpEntity.getContent();

    BufferedReader reader = new BufferedReader(new InputStreamReader(is));
    StringBuilder out = new StringBuilder();
    String line;
    while ((line = reader.readLine()) != null) {
        out.append(line);
    }

    reader.close();