okhttp网络框架的https协议之忽略证书验证的登录实例
2017-05-17 13:23
686 查看
这是一个小小的登录案例是基于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(); } }
相关文章推荐
- okhttp使用https忽略证书验证
- okhttp使用https忽略证书验证
- Retrofit+OKHttp忽略https证书验证
- OKHttp HTTPS 请求支持所有Https服务器 证书验证忽略客户端证书,(3)
- iOS https请求 忽略证书验证
- [解决办法]已经安装了数字证书,但是谷歌浏览器登录https协议的web系统时仍然提示证书不受信任
- java Android OKHttp HTTPS 请求证书验证 PEM证书(1)
- Shiro安全框架入门篇(登录验证实例详解与源码)
- https 证书验证 okhttp https设置
- 登录SQL Server2008出现错误未找到或无法访问服务器,出现与网络相关的或特定于实例的错误。请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接
- 用MFC编写访问HTTPS程序之忽略无效证书验证
- java androidOKHttp HTTPS 请求证书验证 PFX证书(2)
- AFNetworking 3.0 https请求忽略证书验证
- AFN框架实现简单的网络状态监测以及支持https安全证书
- Shiro安全框架入门篇(登录验证实例详解与源码)
- 基于CAS搭建JavaEE单点登录框架(服务端)(取消https证书验证)
- 用MFC编写访问HTTPS程序之忽略无效证书验证
- Shiro安全框架入门篇(登录验证实例详解与源码)
- httpclient忽略证书验证允许https请求
- OkHttp3-Android网络请求框架常用用法介绍与实例(mob请求天气预报)