0

我正在使用以下代码建立 Https 连接

    HttpsConnection httpConnector = null;
    InputStream in = null;
    Document doc ;
    String content = "";

            try 
                {
               httpConnector = (HttpsConnection)Connector.open(url,Connector.READ_WRITE);
                    httpConnector.setRequestMethod(HttpConnection.GET) ;
                    in = httpConnector.openInputStream();
                    byte[] data = new byte[in.available()];
                    int len = 0;
                    int size = 0;
                    StringBuffer raw = new StringBuffer();
                        while ( -1 != (len = in.read(data)) ) {
                            raw.append(new String(data, 0, len));
                            size += len;
                        }
                        content = raw.toString().trim();
                                }
                   catch(Exception ex)
                   {
                       ex.printStackTrace();
                       return false;  
                   }
                   try{
                    in.close();
                    in =null;
                    httpConnector.close();
                    httpConnector =null;

            }catch(Exception ex)
            {
                Dialog.alert("Error:" + ex.getMessage());
                return false;

            } 
            } 

我想我能够建立连接,但价值没有到来。我正在模拟器上测试它,我还没有在设备上测试过

4

1 回答 1

1

我认为您的错误在于以下行:

byte[] data = new byte[in.available()];

available()方法仅返回可立即从输入流中读取的字节数,但您正在使用它来初始化临时字节数组的大小。由于 available() 可能返回 0,因此您可能正在初始化一个长度为零的数组。

最好用固定长度的数组初始化“数据”。

于 2010-07-23T21:23:21.570 回答