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