AndroidAnnotations——Simple HTTPS 简单的HTTPS

翻译 2013年12月05日 16:25:46


不熟悉这块,所以前面的解释没怎么懂,例子倒是蛮好懂的

Simple HTTPS

Since AndroidAnnotations 2.6

@HttpsClient


The @HttpsClient simplifies HTTPS requests by injecting a HttpClient instance with a configured KeyStore, TrustStore and Hostname Verification.
通过注入配置过KeyStoreTrustStore Hostname Verification HttpClient实例, @HttpsClient 简化了HTTPS请求。

All parameters are optionals.
所有参数都是可选的。

Usage examples 用例

Mutual SSL authentication (two-way authentication) 相互SSL身份验证(双向身份验证)


Here is the complete form if you want to achieve Client Auth:
假如你想实现客户端身份验证,下面是完整的格式:

@HttpsClient(trustStore=R.raw.cacerts, 
    trustStorePwd="changeit",
    keyStore=R.raw.client,
    keyStorePwd="secret",
    allowAllHostnames=false)
HttpClient httpsClient;
  • trustStore: int, Resource id of your trust store file ex R.raw.cacerts.bks Typically your servers trusted certificates (public key, Root Chain Authority etc)
    trustStore:int类型,是你trust store文件中,比如 R.raw.cacerts.bks的资源id。典型为你的服务器受信任的证书(公钥,Root Chain Authority等等)
  • trustStorePwd: String, Your TrustStore password (default is changeit)
    trustStorePwd: String类型,你的TrustStore密码(默认为changeit
  • keyStore: int, Resource id of your keystore Usually your private key (client certificate)
    keyStore: int类型,通常是你私钥的资源id(客户端证书)
  • keyStorePwd: Your KeyStore password (default is changeit)
    keyStorePwd: 你的KeyStore密码(默认是changeit
  • allowAllHostnames: boolean, if true, authorizes any TLS/SSL hostname (default true) If false, Hostname in certificate (DN) must match the URL
    allowAllHostnames:boolean类型,若为true,授权给任何主机名(默认为);若为false;证书中的主机名(DN)必须匹配URL
Note: Prior to ICS, Android accept [Key|Trust]store only in BKS format (Bouncycastle Key Store)
注意:在ICS之前,Android只接受BKS格式 (Bouncycastle Key Store) [Key|Trust]store

A simple SSL authentication 简单的SSL认证

This is useful if your remote server use a selfsigned certificate or a certificate issued by a private certificate authority
假如你的远程服务器使用selfsigned证书或者通过私有认证机构发布的证书,那么这种方法比较有用
@HttpsClient(trustStore=R.raw.mycacerts, 
    trustStorePwd="changeit")
HttpClient httpsClient;

Default 


If you do not specify a truststore file, the annotation will use the default android truststore located at/system/etc/security/cacerts.bks which allows you to connect to a server signed with one of the trusted root CAs (Thawte, verisign etc.)
假如你没有指定truststore文件,注解会使用默认的android truststore,它的路径为,允许你连接一个与受信任的根证书(Thawte, verisign等)签订过的服务器

@Https
ClientHttpClient httpsClient;

Complete Example 完整的例子

@EActivity
public class MyActivity extends Activity {

    @HttpsClient(trustStore=R.raw.cacerts,
        trustStorePwd="changeit", 
        hostnameVerif=true)
    HttpClient httpsClient;
        
    @AfterInject
    @Background
    public void securedRequest() {
        try {
            HttpGet httpget = new HttpGet("https://www.verisign.com/");
            HttpResponse response = httpsClient.execute(httpget);
            doSomethingWithResponse(response);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    
    @UiThread
    public void doSomethingWithResponse(HttpResponse resp) {
        Toast.makeText(this, "HTTP status " + resp.getStatusLine().getStatusCode(), Toast.LENGTH_LONG).show();
    }
}

深入浅出HTTPS基本原理

基础知识准备:在了解HTTPS的基本原理之前,需要先了解如下的基本知识。   一、什么是HTTPS,TLS,SSL        HTTPS,也称作HTTP over TLS。TLS...
  • kobejayandy
  • kobejayandy
  • 2016年09月04日 17:53
  • 1977

Android之注解框架Annotations从配置到简单一个demo

Android Annotations配置1.首先,一个框架需要有它的依赖包,Annotations框架需要使用两个jar包,我已经上传在了我的资源上, Annotations框架下载2.在新建的普...
  • song_shui_lin
  • song_shui_lin
  • 2016年11月09日 14:21
  • 1159

创建https请求

//创建SSLContext对象,并使用我们指定的信任管理器初始化 TrustManager[] tm = {new MyX509TrustManager ()}; SSLContext sslCo...
  • anmin1234
  • anmin1234
  • 2017年05月18日 21:46
  • 140

HTTPS简单原理介绍

为什么需要https HTTP是明文传输的,也就意味着,介于发送端、接收端中间的任意节点都可以知道你们传输的内容是什么。这些节点可能是路由器、代理等。 举个最常见的例子,用户登陆。用户输入账号,密...
  • Small_dong_
  • Small_dong_
  • 2016年09月14日 09:03
  • 1987

java程序访问http,或https最简单的方法

首先要引入包http-request-5.6.jar 关于jar包,我已经是上传了哈。 下面代码其实就几句就行了,其他业务代码不必理会。 /** * this method is 授权 ...
  • lang_man_xing
  • lang_man_xing
  • 2015年01月05日 19:45
  • 6049

Android Https请求详细demo(经过测试可用)

Android Https详细请求全方案实现,包括HttpUrlConnection及HttpClient方式实现指定证书及信任所有的实现,以下代码都经过详细测试,可以直接使用。 Java代...
  • jonbb
  • jonbb
  • 2016年12月23日 15:27
  • 923

Java 发送https 的post请求方法

import java.io.BufferedReader;   import java.io.FileInputStream;   import java.io.IOException;   ...
  • sunny243788557
  • sunny243788557
  • 2014年08月27日 17:45
  • 41640

用Wireshark简单分析HTTPS传输过程-抓包过程

实验环境: 操作系统:Kali linux 1.06 64位 软件:Wireshark 实验目的:查看https的协议传输过程。 一、打开软件, 二、打...
  • u012570105
  • u012570105
  • 2015年11月16日 12:25
  • 2647

Python安装配置(64位)

这几天由于工作需要把32位卸了,换上64位的,以下是总结的安装顺序和步骤: 1、python-2.7.12.amd64.msi(需要装JDK并配置环境变量path) 2、wxPython2.8-win...
  • hapasm
  • hapasm
  • 2017年03月02日 10:29
  • 819

https协议是什么意思?与http协议的区别在哪?

1、HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下...
  • qq939782569
  • qq939782569
  • 2017年02月25日 09:07
  • 1214
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:AndroidAnnotations——Simple HTTPS 简单的HTTPS
举报原因:
原因补充:

(最多只允许输入30个字)