`
isiqi
  • 浏览: 16466958 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

android https 连接建立

 
阅读更多

Https与Http类似,只不过Https一般是通过post请求服务器,但是Https与http不同的是Https与服务器会话是处于连接状态。http则发送请求后连接就会断开。
发送post请求代码:
String query = r4 + "&pass=" + r3; //请求参数
byte[] entitydata = query.getBytes();//得到实体数据
HttpsURLConnection urlCon = (new URL(ticketurl)).openConnection();
urlCon.setRequestProperty("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8");
urlCon.setRequestProperty("Content-Length", String.valueOf(entitydata.length));
((HttpsURLConnection) urlCon).setRequestMethod("POST");
urlCon.setDoOutput(true);
urlCon.setDoInput(true);
urlCon.connect();

//把封装好的实体数据发送到输出流
OutputStream outStream = urlCon.getOutputStream();
outStream.write(entitydata);
outStream.flush();
outStream.close();

//服务器返回输入流并读写
BufferedReader in = new BufferedReader(new InputStreamReader(urlCon.getInputStream()));
String line;

while ((line = in.readLine()) != null) {
return line;
}
in.close();
另外使用HttpsURLConnection时需要实现HostnameVerifier 和 X509TrustManager,这两个实现是必须的,要不会报安全验证异常。然后初始化X509TrustManager中的SSLContext,为javax.net.ssl.HttpsURLConnection设置默认的SocketFactory和HostnameVerifier。代码如下:
private myX509TrustManager xtm = new myX509TrustManager();
private myHostnameVerifier hnv = new myHostnameVerifier();

public HttpsURLConnectionTest() {

//初始化X509TrustManager中的SSLContext
SSLContext sslContext = null;

try {
sslContext = SSLContext.getInstance("TLS");
X509TrustManager[] xtmArray = new X509TrustManager[] { xtm };
sslContext.init(null, xtmArray, new java.security.SecureRandom());
} catch (GeneralSecurityException gse) {

}

//为javax.net.ssl.HttpsURLConnection设置默认的SocketFactory和HostnameVerifier
if (sslContext != null) {
HttpsURLConnection.setDefaultSSLSocketFactory(sslContext.getSocketFactory());
}

HttpsURLConnection.setDefaultHostnameVerifier(hnv);
这样就不会报错了。

分享到:
评论

相关推荐

    Android蓝牙连接设备demo

    3. **连接设备**:一旦找到目标设备,可以通过`BluetoothGatt`类建立连接。调用`connectGatt()`方法,传入应用上下文、是否自动重连以及一个`BluetoothGattCallback`,用于处理连接状态变化、服务发现、读写操作等...

    Android 远程连接mysql 驱动 8.0.29

    在这个场景中,我们关注的是"Android 远程连接mysql 驱动 8.0.29",这意味着我们要讨论如何在Android设备上使用MySQL Connector/J 8.0.29驱动程序来与远程MySQL 8.0服务器建立连接。 首先,MySQL Connector/J是...

    Android通过webservice连接Sqlserver实例

    2. 数据库连接:在服务器端,配置SQLServer数据库连接字符串,确保服务器允许外部访问,并使用ADO.NET或其他数据库访问技术建立数据库连接。 步骤二:Android客户端准备 1. 添加依赖:在Android项目中,添加必要的...

    Android数据连接流程分析

    从用户界面上的操作到最后的数据连接建立或断开,整个过程涉及多个层次和组件之间的复杂交互。理解这些细节对于开发者来说是非常有价值的,因为它有助于我们更好地掌握Android系统的网络管理机制,并能够在此基础上...

    Android与蓝牙耳机建立连接的分析

    通过以上分析可以看出,Android系统与蓝牙耳机之间的连接建立过程涉及多个关键步骤:注册Profile、监听特定动作、根据动作采取相应措施(如建立或断开连接)。理解这些机制对于开发支持蓝牙功能的应用程序非常重要。...

    Android 经典蓝牙连接,多台蓝牙设备同时连接,全站仪连接

    在Android应用中,首先需要找到全站仪的蓝牙设备(`BluetoothDevice`对象),然后创建`BluetoothSocket`以建立连接。连接过程可能需要处理权限请求、设备配对以及连接失败的异常情况。 3. **多设备同时连接**:要...

    java实现电脑和Android蓝牙连接

    3. **连接建立:** `RemoteDevice`类表示远程蓝牙设备,`BluetoothConnection`或`L2CAPConnection`用于创建与远程设备的连接。在Android中,使用`BluetoothSocket`类创建连接,并调用`connect()`方法。 **Android ...

    android 蓝牙与打印机建立连接

    - 一旦连接建立,就可以通过`InputStream`和`OutputStream`进行数据读写操作。 - 发送数据时,通过`OutputStream.write()`方法将数据写入输出流。 - 接收数据时,通过`InputStream.read()`方法从输入流中读取数据...

    android蓝牙通讯连接Hc-05模块.zip

    在Android平台上进行蓝牙通信,...总之,Android蓝牙通信涉及到权限配置、设备搜索、连接建立、数据交换和资源释放等环节。理解这些步骤并熟练运用到实际项目中,将使你在开发支持蓝牙功能的Android应用时游刃有余。

    Android 实现WebSocket长连接

    Android 实现WebSocket长连接 最近项目中引入了实时接收服务器数据的功能,考量后通过WebSocket长链接来实现。 1、建立在 TCP 协议之上,服务器端的实现比较容易。 2、与 HTTP 协议有着良好的兼容性。默认端口也是80...

    Android蓝牙连接源代码

    4. **建立连接**: 当找到目标设备后,通过`BluetoothDevice`对象的`createRfcommSocketToServiceRecord()`创建一个蓝牙套接字,然后调用`connect()`方法尝试连接。注意,蓝牙连接可能需要用户授权,因此需要处理可能...

    连接多个BLE设备(Android)

    总结来说,创建一个连接多个BLE设备的Android应用涉及到蓝牙适配器的管理、设备扫描、连接建立、服务发现、数据接收等多个步骤。在实际开发中,还需考虑性能优化、错误处理和用户体验等因素。通过学习和实践这些知识...

    android蓝牙连接

    4. **建立连接**: 配对成功后,可以使用`BluetoothSocket`进行连接。`BluetoothDevice`提供了`createRfcommSocketToServiceRecord(UUID uuid)`方法创建一个SPP(串行端口协议)连接。连接通常在后台线程中进行,以...

    Android的socket长连接(心跳检测)

    - Socket是网络编程的基本组件,它提供了进程间通信(IPC)的能力,特别是在分布式系统中,通过TCP/IP协议在不同主机之间建立连接。 - 在Android中,我们可以使用`java.net.Socket`类来创建和管理Socket连接。 2....

    Android Https通信改进版

    3. **连接池**:使用OkHttp等库可以创建持久的连接池,减少建立新连接的开销,提高性能。OkHttp的连接池会自动管理连接的生命周期,确保连接复用。 4. **缓存机制**:启用HTTP缓存策略可以减少网络请求,提高用户...

    Android手机连接蓝牙打印机实现打印功能

    在Android平台上实现手机连接蓝牙打印机并进行打印功能是一项常见的需求,尤其在移动办公、零售等领域。这个场景中,我们主要涉及的技术点包括Android系统的蓝牙API、数据传输以及打印协议的理解。 首先,Android...

    android连接mysql数据库例子

    要实现Android连接MySQL,你需要以下关键步骤: 1. **创建服务器端接口**:使用Java或PHP等后端语言,在服务器上编写API接口,这些接口将处理来自Android应用的HTTP请求,连接MySQL数据库,执行SQL查询,并将结果...

    Android连接sqlserver数据库

    这个场景在标题"Android连接sqlserver数据库"中被提及,描述指出代码将直接连接到SQL Server数据库,并将查询结果展示在应用的界面上。标签"sqlswe"可能代表SQL Server与Web开发相关的技能。接下来,我们将深入探讨...

    android客户端连接pc服务端

    通过上述分析可以看出,`SocketConnect.java`主要实现了通过Socket在Android客户端与PC服务端之间建立连接的功能。它通过按钮触发连接动作,然后通过输入框获取用户输入的信息,并将这些信息发送到指定的IP地址和...

    android app与pc通信,USB连接socket通信,

    当连接建立后,双方就可以通过Socket的输入流和输出流进行数据交换。这通常涉及到数据的序列化和反序列化,以便正确地在两端解析和处理。 为了在无网络环境下组建局域网,我们可以通过USB线将Android设备与PC连接,...

Global site tag (gtag.js) - Google Analytics