新浪微博 auth2 https ssl 报错
来源:互联网 发布:c 连接没有密码mysql 编辑:程序博客网 时间:2024/05/21 06:32
新浪微博 在认证时发布https请求时 报错
auth2.0
javax.net.ssl.SSLPeerUnverifiedException: No peer certificate的错误,
由于android的运行版本太低导致的 没有集成ssl安全协议
从写 httpclient即可
- import java.io.IOException;
- import java.net.Socket;
- import java.net.UnknownHostException;
- import java.security.KeyManagementException;
- import java.security.KeyStore;
- import java.security.KeyStoreException;
- import java.security.NoSuchAlgorithmException;
- import java.security.UnrecoverableKeyException;
- import javax.net.ssl.SSLContext;
- import javax.net.ssl.TrustManager;
- import javax.net.ssl.X509TrustManager;
- import org.apache.http.conn.ssl.SSLSocketFactory;
- public class SSLSocketFactoryEx extends SSLSocketFactory {
- SSLContext sslContext = SSLContext.getInstance("TLS");
- public SSLSocketFactoryEx(KeyStore truststore)
- throws NoSuchAlgorithmException, KeyManagementException,
- KeyStoreException, UnrecoverableKeyException {
- super(truststore);
- TrustManager tm = new X509TrustManager() {
- public java.security.cert.X509Certificate[] getAcceptedIssuers() {
- return null;
- }
- @Override
- public void checkClientTrusted(
- java.security.cert.X509Certificate[] chain, String authType)
- throws java.security.cert.CertificateException {
- }
- @Override
- public void checkServerTrusted(
- java.security.cert.X509Certificate[] chain, String authType)
- throws java.security.cert.CertificateException {
- }
- };
- sslContext.init(null, new TrustManager[] { tm }, null);
- }
- @Override
- public Socket createSocket(Socket socket, String host, int port,
- boolean autoClose) throws IOException, UnknownHostException {
- return sslContext.getSocketFactory().createSocket(socket, host, port,
- autoClose);
- }
- @Override
- public Socket createSocket() throws IOException {
- return sslContext.getSocketFactory().createSocket();
- }
- }
再写一个公共方法 方便调用
- public static HttpClient getNewHttpClient() {
- try {
- KeyStore trustStore = KeyStore.getInstance(KeyStore.getDefaultType());
- trustStore.load(null, null);
- SSLSocketFactory sf = new SSLSocketFactoryEx(trustStore);
- sf.setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
- HttpParams params = new BasicHttpParams();
- HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1);
- HttpProtocolParams.setContentCharset(params, HTTP.UTF_8);
- SchemeRegistry registry = new SchemeRegistry();
- registry.register(new Scheme("http", PlainSocketFactory.getSocketFactory(), 80));
- registry.register(new Scheme("https", sf, 443));
- ClientConnectionManager ccm = new ThreadSafeClientConnManager(params, registry);
- return new DefaultHttpClient(ccm, params);
- } catch (Exception e) {
- return new DefaultHttpClient();
- }
- }
那么就可以
HttpPost post=new HttpPost(URI.create(urlString));
// HttpClient httpClient=new DefaultHttpClient();原来滴
HttpResponse response=getNewHttpClient().execute(post);
执行正常
- 新浪微博 auth2 https ssl 报错
- 新浪微博 auth2 https ssl 报错
- IOS新浪微博SDK AUTH2.0认证
- python requests 请求 https SSL 报错
- 从新浪微博和MySQL的密码保护机制谈HTTPS/SSL的必要性
- python请求https报错[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed
- Android ksoap 访问https SSL Webservice报错 javax.net.ssl.SSLException: Not trusted server certificate
- weibo4android新浪微博认证失效报错401
- 求解答新浪微博api报错
- iOS-OC-新浪微博登录报错redirect_uri_mismatch
- 新浪微博:javax.net.ssl.SSLPeerUnverifiedException: No peer certificate
- 新浪微博 I/O exception (javax.net.ssl.SSLException)
- https请求报错解决:javax.net.ssl.SSLException: Not trusted ...
- git报错 unable to access 'https://****': SSL certificate problem: Invalid
- Mac下Intellij idea的SVN无法连接https地址,报错:Server ssl certificate rejected
- android 安装 SDK的时候报错!!! 他说拒绝访问https://dl-ssl.google.com??
- Tomcat配置Https报错-Connector attribute SSLCertificateFile must be defined when using SSL with APR
- windows下 Ruby使用国内https源时出现的ssl报错的解决办法
- MyBatis分页实现 - Oracle
- Objective-C ,ios,iphone开发基础:NSDictionary(字典) 和 NSMutableDictionary
- JS中的RegExp对象
- codility上的问题(26) Hydrogenium 2013
- 130825组队赛-Regionals 2012, North America - East Central NA
- 新浪微博 auth2 https ssl 报错
- ubuntu_note
- Java桌面程序打包成exe可执行文件
- 一图胜过万语千言
- 理查德·斯托曼一直是对的
- 黑马程序员-java学习之面向对象(类与对象的关系)
- 二维数组和二级指针
- String 的split()方法
- sharpen image