android https 连接建立

http://blog.csdn.net/totogo2010/article/details/6368069

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);
这样就不会报错了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是在 Android建立蓝牙连接的示例代码(Java): 1. 首先,在 AndroidManifest.xml 文件中添加以下权限: ```xml <uses-permission android:name="android.permission.BLUETOOTH" /> <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" /> ``` 2. 在需要使用蓝牙功能的 Activity 中,添加以下代码: ```java // 创建 BluetoothAdapter 对象 BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); // 检查设备是否支持蓝牙 if (bluetoothAdapter == null) { // 设备不支持蓝牙功能 } // 如果蓝牙未打开,则请求打开蓝牙 if (!bluetoothAdapter.isEnabled()) { Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE); startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT); } // 获取已配对的设备列表 Set<BluetoothDevice> pairedDevices = bluetoothAdapter.getBondedDevices(); // 遍历已配对设备列表,找到需要连接的设备 for (BluetoothDevice device : pairedDevices) { if (device.getName().equals("设备名称")) { // 创建 BluetoothSocket 对象,用于连接设备 BluetoothSocket socket = device.createRfcommSocketToServiceRecord(MY_UUID); // 连接设备 try { socket.connect(); } catch (IOException e) { // 连接失败 return; } // 连接成功,可以进行数据传输等操作 break; } } ``` 上面的代码中,`MY_UUID` 是自定义的 UUID,用于唯一标识应用程序与设备之间的连接。可以使用 `java.util.UUID` 类来生成 UUID。 以上就是在 Android建立蓝牙连接的示例代码。需要注意的是,蓝牙连接过程可能会因为各种因素(如设备未配对、设备不在可连接范围内等)失败,开发者需要对连接失败情况进行处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值