`
king_tt
  • 浏览: 2260378 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

访问https接口,进行数据交互(已在实际项目中使用)

 
阅读更多
前言:
在android开发中,会涉及到安全比较高的业务,比如银行,网上交易等,这就涉及到https协议的交互
对于https 交互过程分两个阶段
1. 客户端获取服务器的证书,并验证证书的内容是否可信
2. 客户端和服务器端进行握手协议,并进行数据传输

对于https 交互过程,第一点,采用了网站可信的方式,如有需要验证域名和证书是否一致的,请自我扩展
实现的过程:
1): 注册scheme of https
注意:
HostnameVerifier hostnameVerifier = org.apache.http.conn.ssl.SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER;
如果需要验证,则,自己继承HostnameVerifier ,并实现接口。
2):获取 httpClient 和 httpPost
3):获取数据
下面是实现的源码,参数就是https路径:
1 public String GetData(String URL)
2 {
3 String returns="";
4
5 //Step One register scheme of https
6 HostnameVerifier hostnameVerifier = org.apache.http.conn.ssl.SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER;
7
8 SchemeRegistry registry = new SchemeRegistry();
9 SSLSocketFactory socketFactory = SSLSocketFactory.getSocketFactory();
10 socketFactory.setHostnameVerifier((X509HostnameVerifier) hostnameVerifier);
11 registry.register(new Scheme("https", socketFactory, 443));
12 registry.register(new Scheme("http",PlainSocketFactory.getSocketFactory (), 80));
13
14 //Step Two Get httpClient and httpPost
15
16 DefaultHttpClient client = new DefaultHttpClient();
17 SingleClientConnManager mgr = new SingleClientConnManager(client.getParams(), registry);
18 DefaultHttpClient httpClient = new DefaultHttpClient(mgr, client.getParams());
19 //------- Set verifier
20 HttpsURLConnection.setDefaultHostnameVerifier(hostnameVerifier);
21 // -------Example send http request
22 // final String url = "https://martinreichart.com/_tmpdata/login_valid.json";
23 HttpPost httpPost = new HttpPost(URL);
24
25 //Step Three Get Data
26 try {
27 HttpResponse response = httpClient.execute(httpPost);
28 if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
29 // 解析返回的内容
30 returns = EntityUtils.toString(response.getEntity());
31 }
32 }
33 catch(Exception ex)
34 {
35
36 String aa =ex.toString();
37 }
38
39 return returns;
40 }
分享到:
评论

相关推荐

    中控实时数据库数据交互接口技术.zip

    "实时数据库数据交互接口技术.pdf"很可能提供了关于如何设计和实现上述功能的具体指导和案例,包括接口规范、编程接口(API)的使用方法,以及实际应用中的最佳实践。 综上所述,"中控实时数据库数据交互接口技术...

    InTouch与关系数据库的数据交互.PDF

    15. 在实际应用中,需要根据具体情况选择使用ODBC或OLE DB接口来实现InTouch与关系数据库的数据交互。 本文档详细介绍了InTouch软件如何与关系数据库进行数据交互,包括如何读取和写入关系数据库数据,并提供了相关...

    C# 数据访问层封装

    通过查看这些代码,我们可以更深入地了解如何在实际项目中实现数据访问层的封装和权限管理。 总结来说,"C# 数据访问层封装"是一个关于如何在C#应用程序中构建数据访问层,并实现对数据库的精细权限控制的示例。...

    企业数据交互接口系统联调测试报告.doc

    企业数据交互接口系统联调测试报告是对企业内部或与外部合作伙伴之间进行数据交换的重要环节的评估,确保系统间的数据传输准确、高效且无误。以下是对该报告涉及的知识点的详细说明: 1. **测试简介** - **测试...

    JDBC数据访问接口

    8. **ODBC数据访问接口**:虽然ODBC是微软提出的一个接口,主要用于非Java环境,但理解ODBC可以帮助我们理解JDBC的设计思想,即提供一个统一的接口来访问多种数据库。 在实际开发中,JDBC还涉及到异常处理、连接池...

    浅谈大数据处理技术在交互设计中的实际运用.pdf

    例如,云资源调度技术可以提高界面交互过程中的进程管理能力,而异构、层次化的分布式界面可以实现信息管理和数据交互。 然而,上述方法也存在一些问题,如检索的查准性不高和抗干扰能力不强等。针对这些问题,本文...

    实现安卓与服务器的数据交互Demo

    在安卓应用开发中,数据交互是至关重要的环节,它涵盖了应用程序如何与远程服务器进行通信,获取或发送数据。本教程将通过一个简单的“hello源码”项目,介绍如何实现安卓与服务器之间的数据交互。 首先,我们需要...

    intouch7数据接口

    【Intouch7数据接口】是Intouch软件与外部系统进行数据交互的重要机制,它提供了两种主要...在实际应用中,根据系统的数据处理需求和性能要求,可以选择合适的接口方式与Intouch进行集成,以实现高效的数据交互和管理。

    OPC历史数据访问服务器结构分析与接口设计.pdf

    - **OPC技术标准**:建立在OLE/COM组件技术上的标准,确保了工业控制系统中不同厂商设备的数据交互性。 - **OLE/COM机制**:客户/服务器模式,语言无关性、代码重用性、易于集成。 - **服务器类型**:包括数据访问、...

    通过USB进行PC端和Android的数据交互

    本示例中的"通过USB进行PC端和Android的数据交互"是一个小型的Demo,它演示了如何利用USB接口实现PC(个人电脑)与Android设备之间的数据交换。这种功能在设备调试、数据传输、自动化测试等方面有广泛的应用。 首先...

    flex与PHP数据交互教程

    Flex是Adobe公司开发的一种富互联网应用程序(RIA)框架,它主要使用ActionScript编程语言和MXML标记语言,用于创建交互式、动态的用户界面。...在实际项目中,还需要根据需求灵活应用并不断优化交互过程。

    C++http所有接口和https post和DownLoad接口

    在实际应用中,开发者通常会封装这些库,创建易于使用的类或函数,如`sendHttpGetRequest()`, `sendHttpPostRequest()`, `downloadFile()`, 等等,以简化接口的调用。同时,错误处理和重试机制也是接口实现中不可或...

    C#控制WinForm窗体间数据交互的方法

    以上介绍了三种在WinForm窗体间进行数据交互的方法:自定义构造函数、使用接口以及使用委托。每种方法都有其适用场景和优缺点。开发者应根据项目的具体需求选择最适合的方法。在实际开发过程中,推荐使用后两种方法...

    JDBC数据访问对象学习资料

    总结起来,JDBC数据访问对象学习资料将引导你理解如何在MVC架构中使用JDBC进行数据访问层的封装,包括DAO设计模式的应用,JDBC的基本操作流程,以及如何在实际项目中优化和提升数据访问的效率。通过学习,你将能够更...

    MFC的WebBrowser控件 C++与JavaScript之间数据交互传递

    WebBrowser控件允许在MFC应用中嵌入网页浏览功能,而C++与JavaScript之间的数据交互则为这种集成提供了更丰富的可能性。本文将深入探讨如何实现C++和JavaScript之间的数据交换,并通过提供的源代码实例进行详细讲解...

    oracle通过存储过程POST方式访问接口

    POST方法用于向服务器发送数据,这在API交互中很常见,比如创建新记录或更新已有数据。 开启Oracle ACL(访问控制列表)权限是必要的,因为默认情况下,Oracle不允许数据库实例对外部网络进行访问。1.开启Oracle ...

    C#利用post访问接口

    本篇文章将深入探讨如何使用C#进行POST方法的HTTP接口访问,这对于任何需要与远程服务器交互的应用程序都是至关重要的。POST请求常用于向服务器发送数据,如表单提交或API调用。 首先,理解HTTP协议的基础是必要的...

    移动开发接口文档项目

    在移动开发接口文档项目中,src目录下可能有多个子目录,分别对应不同的模块,如业务逻辑、数据访问层、控制器等。接口的具体实现会在这里找到,开发者可以通过阅读这些源代码来了解接口的工作原理、参数验证、错误...

    flex项目和web项目交互

    Flex项目和Web项目交互是现代Web开发中的常见需求,尤其在构建富互联网应用程序(RIA)时。Flex项目通常使用Adobe Flex技术,它基于ActionScript和Flash Player,提供强大的用户界面和交互功能。而Web项目则可能由...

Global site tag (gtag.js) - Google Analytics