okhttp网络框架的https协议之忽略证书验证的登录实例
来源:互联网 发布:下周主要财经数据 编辑:程序博客网 时间:2024/05/19 16:50
这是一个小小的登录案例是基于https的小demo,希望可以对各位同胞有所帮助!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
下面上代码
首先是一个工具类多一些功能进行了封装
public class HttpUtils { OkHttpClient client = getUnsafeOkHttpClient(); public static final MediaType JSON = MediaType.parse("application/json; charset=utf-8"); public String login(String url, String json) throws IOException { //把请求的内容字符串转换为json RequestBody body = RequestBody.create(JSON, json); Request request = new Request.Builder() .url(url) .post(body) .build(); Response response = client.newCall(request).execute(); String result = response.body().string(); return result; } public String bolwingJson(String username, String password) { return "{'username':" + username + "," + "'password':" + password + "}"; } public static OkHttpClient getUnsafeOkHttpClient() { try { final TrustManager[] trustAllCerts = new TrustManager[]{new X509TrustManager() { @Override public void checkClientTrusted(X509Certificate[] chain, String authType) { } @Override public void checkServerTrusted(X509Certificate[] chain, String authType) { } @Override public X509Certificate[] getAcceptedIssuers() { X509Certificate[] x509Certificates = new X509Certificate[0]; return x509Certificates; } }}; final SSLContext sslContext = SSLContext.getInstance("SSL"); sslContext.init(null, trustAllCerts, new java.security.SecureRandom()); OkHttpClient okHttpClient = new OkHttpClient.Builder() .sslSocketFactory(sslContext.getSocketFactory()) .hostnameVerifier(new HostnameVerifier() {@Override public boolean verify(String hostname, SSLSession session) { return true; } }) .build(); return okHttpClient; } catch (Exception e) { throw new RuntimeException(e); } }}
主代码如下
public class MainActivity extends AppCompatActivity implements View.OnClickListener { private static final String TAG ="MainActivity" ; //用户名 private EditText mEtUsername; //密码 private EditText mEtPwd; //登录按键 private Button mBtnLogin; private String url ="https://i171635h39.51mypc.cn:35689/jeesite/a/login"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); initListener(); } /** * 初始化组件 */ private void initView() { mEtUsername = (EditText) findViewById(R.id.login_edit_account); mEtPwd = (EditText) findViewById(R.id.login_edit_pwd); mBtnLogin = (Button) findViewById(R.id.login_btn_login); } /** * 设置监听器 */ private void initListener() { mBtnLogin.setOnClickListener(this); } /* 单击事件监听 */ @Override public void onClick(View v) { if(v==mBtnLogin){ login(); } } /* 登录 */ private void login() { final String username = mEtUsername.getText().toString().trim(); final String password = mEtPwd.getText().toString().trim(); if(TextUtils.isEmpty(username) || TextUtils.isEmpty(password)){ Toast.makeText(MainActivity.this, "用户名或者密码不能为空", Toast.LENGTH_SHORT).show(); return; } new Thread(){ @Override public void run() { HttpUtils httpUtils = new HttpUtils(); //转换为JSON String user = httpUtils.bolwingJson(username, password); //String user ="{'username':" + username + ","+"'password':"+password+"}"; Log.d(TAG, "user:" + user); try { final String result = httpUtils.login(url, user); Log.d(TAG, "结果:" + result); //更新UI,在UI线程中 runOnUiThread(new Runnable() { @Override public void run() { if("SUCCESS".equals(result)){ Toast.makeText(MainActivity.this, "登录成功", Toast.LENGTH_SHORT).show(); }else{ Toast.makeText(MainActivity.this, "登录失败", Toast.LENGTH_SHORT).show(); } } }); } catch (IOException e) { e.printStackTrace(); } } }.start(); }}
阅读全文
0 0
- okhttp网络框架的https协议之忽略证书验证的登录实例
- 使用okhttp忽略https的证书认证
- okhttp使用https忽略证书验证
- okhttp使用https忽略证书验证
- CloseableHttpAsyncClient忽略https的证书验证
- OKHttp的常用配置如配置Https证书,忽略Https证书,Cookie持久化
- OKHttp的常用配置如配置Https证书,忽略Https证书,Cookie持久化
- OKHttp HTTPS 请求支持所有Https服务器 证书验证忽略客户端证书,(3)
- 忽略证书验证的CloseableHttpClient
- OKHttp HTTPS 请求证书验证 PEM证书
- https 证书验证 okhttp https设置
- okhttp关于https的证书信任问题
- 开发手记--使用OkHttp忽略HTTPS验证
- Https系列之四:https的SSL证书在Android端基于okhttp,Retrofit的使用
- 使用自定义证书并忽略验证的HTTPS连接Post请求方式的封装
- okHttp框架的介绍 和关于https的自定义签名证书的问题
- okhttp和webview跳过https证书验证
- iOS https请求 忽略证书验证
- 求两个链表的第一个公共结点各种情况及三种思路分析
- java 可变参数方法不支持多个可变参数以及多种类型的替代方法
- 238. Product of Array Except Self
- Cassandra 3.0 的新特性介绍: 物化视图
- js 面对对象编程
- okhttp网络框架的https协议之忽略证书验证的登录实例
- C# 内存单位计算 源码
- WebGL基础简明教程2-基础知识
- group by 与order by
- appcan移动开发中uexBaiduMap插件的悬浮效果
- 【php中的curl】php中curl的详细解说
- Ibatis细节
- 如何对故事布局谋篇
- 在deepin上面安装node