2012-01-14 3 views
0
public class ConsumeFactoryThread extends Thread { 
    private String url; 

    public ConsumeFactoryThread(String url){ 

     this.url = url; 

    } 


    public void run(){ 

     ConnectionFactory connFact = new ConnectionFactory(); 
     ConnectionDescriptor connDesc; 

     connDesc = connFact.getConnection(url); 

     if(connDesc != null) 
     { 

      HttpConnection httpConn; 
      httpConn = (HttpConnection) connDesc.getConnection(); 

      try 
      { 
       final int iResponseCode = httpConn.getResponseCode(); 
       UiApplication.getUiApplication().invokeLater(new Runnable() 
       { 

        public void run() 
        { 
         //data retrieved 



        } 

       }); 
      } 
      catch(IOException e) 
      { 
       System.err.println("Caught IOException: " + e.getMessage()); 
      } 
     } 

    } 

} 

위의 코드가 Blackberry의 기사에서 제공되었지만, URL의 내용에 대한 원시 문자열을 얻는 방법에 대해서는 확실하지 않습니다. 사건은 json 문자열이 될 것입니다.ConnectionFactory를 사용하고 URL에서 데이터를 검색하십시오.

내가 ConnectionFactory를 사용하지 않을 때를 알고 있습니다. 데이터를 가져 오기 위해 inputstream을 사용했지만 최신 API와 동일한 지 알 수 없습니다.

is = ((Connection) httpConn).openInputStream(); 
byte[] data = net.rim.device.api.io.IOUtilities.streamToBytes(is); 
String result = new String(data); 

이 입력이 HttpConnection에 객체가 모여있다 스트림을 사로 잡고, 잘에 넣어하기 위해 RIM IOUtils 클래스를 사용 : 당신이 할 찾고있는 다음

감사

내가 믿는

답변

3

입니다 배열은 마지막으로 데이터에서 String을 생성합니다. RIM이 JSON에서 작업하기 위해 SDK에 포함하는 JSON 라이브러리를 사용하는 것이 가능해야합니다.

참고 : 캐스트가 필요한지 확실하지 않은 경우 테스트되지 않은 코드입니다.

또한 BlackBerry에 네트워크 연결을 만드는 데 사용할 수있는 3 가지 API가 있습니다. 일반 연결 워크

가장 오래된 methed (이하 ​​OS 5)를 사용

은 URL의 끝에 첨부 된 추가적인 전송 디스크립터 염기성 J2ME 구현이다. J2ME GCF를 사용합니다. 위의 설명은 here으로, HTTPConnection을 항상 안정적으로 여는 방법을 설명합니다. OS (5) 및 상기에 도입 된 네트워크 API

사용

. 이것은 현재 사용중인 방법입니다. ConnectionFactory 클래스와 ConnectionDescriptor 클래스를 사용하여 GCF의 URL 끝에 추가되는 불쾌한 설명자 문자열을 래핑합니다. 위의 OS 6 및 도입 통신 API

를 사용

. 이것은 가능한 가장 새로운 방법이며 네트워크 API에서 더 높은 추상화입니다. 이러한 API의 추상은 실제 데이터를 수집하고 프로토콜의 세부 사항으로 당신을 괴롭히지 않으려 고합니다. 이 API에 대한 유용한 점은 결과 데이터를 얻고 구현 세부 사항을 염려 할 필요가 없다는 것입니다.

JSON으로 작업 할 때 결과 데이터를 변환하는 자세한 내용을 둘러보고 원하는 형식으로 변환합니다. 예는 here입니다.

관련 문제