2010-07-23 4 views
0

내가 연결 HTTPS를 내가 연결을 설정할 수라고 생각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; 

      } 
      } 

을 설정하는 다음 코드를 사용하고 있지만 값이 올 수 없습니다.

available() 메서드는 반환
byte[] data = new byte[in.available()]; 

얼마나 많은 바이트가 InputStream로부터 읽기 위해 즉시 사용할 수 있습니다 내가 시뮬레이터에서 테스트하고, 나는

+0

동일한 코드 – rupesh

답변

1

내가 당신의 실수가 다음 줄에 생각 장치에서 테스트하지 않았습니다 ,하지만 임시 바이트 배열의 크기를 초기화하는 데 사용하고 있습니다. available()이 0을 반환 할 가능성이 있으므로 길이가 0 인 배열을 초기화하는 중일 수 있습니다.

"데이터"를 고정 길이 배열로 초기화하는 것이 좋습니다.

+0

을 사용하여 httpconnection을 사용하여 값을 가져올 수 있지만이 코드는 HTTP 연결로 잘 작동합니다. – rupesh

+0

HTTP 연결이 available()에 대한 양수 값을 가질 수있는 타이밍이 우연 일 수도 있습니다. 0을 시도하고 고정 길이 바이트 배열로 바꾸는 것이 좋을 것입니다. –

+0

inputstream에 대한 getLength()가 없다고 생각합니다. – rupesh