2011-08-10 6 views
0

모바일 앱 개발을 처음 사용합니다. 나는 사용자의 타임 라인에서 트윗을 읽는 블랙 베리 애플리케이션을 개발 중이다. 지금까지 나는 OAuth 액세스 토큰을 얻을 수있었습니다. 문제는이 액세스 토큰을 사용하여 "승인되지 않은"메시지와 함께 401 응답을받는 짹짹을 읽으 려 할 때 발생합니다. 나는 모든 것을 혼자서 사용하고있는 라이브러리를 사용하지 않고있다. 누구든지 이걸 도와 줄 수 있니? 그러나 단지 메모, 내가 OAuth를 전문가가 아니에요트윗을 읽을 때 401 응답

  HttpConnectionFactory factory = new HttpConnectionFactory(url, 
       HttpConnectionFactory.TRANSPORT_WIFI | 
       HttpConnectionFactory.TRANSPORT_WAP2 | 
       HttpConnectionFactory.TRANSPORT_BIS | 
       HttpConnectionFactory.TRANSPORT_BES | 
       HttpConnectionFactory.TRANSPORT_DIRECT_TCP); 

     httpConn = factory.getNextConnection(); 
     httpConn.setRequestMethod(HttpProtocolConstants.HTTP_METHOD_GET); 
     httpConn.setRequestProperty("WWW-Authenticate","OAuth realm=http://twitter.com/"); 
     httpConn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); 
     httpConn.setRequestProperty("Content-Length", Integer.toString(header.getBytes().length)); 
     os = httpConn.openOutputStream(); 

     os.write(header.getBytes()); 
     os.close(); 
     os = null; 


     input = httpConn.openDataInputStream(); 
     int resp = httpConn.getResponseCode(); 

    // Dialog.alert(httpConn.getDate()+" : "+System.currentTimeMillis()); 


     if (resp == HttpConnection.HTTP_OK) { 

      XMLReader parser; 
      try { 
       parser = XMLReaderFactory.createXMLReader(); 
       parser.setContentHandler(this); 
       parser.parse(new InputSource(input)); 
       for(int i=0 ; i<2 ; i++) 
       { 
        tweets.addElement(parser.getProperty("text").toString()); 
        Dialog.alert(parser.getProperty("text").toString()); 
       } 

      } catch (SAXException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 

      Dialog.alert("your tweet was posted successfully :)"); 
     } 
     Dialog.alert(httpConn.getResponseCode()+": "+httpConn.getResponseMessage()); 
     return (httpConn.getResponseCode()+": "+httpConn.getResponseMessage()); 
    } catch (IOException e) { 
     return "exception"; 
    } catch (NoMoreTransportsException nc) { 
     return "noConnection"; 
    } finally { 
     try { 
      httpConn.close(); 
      input.close(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
    } 
+0

코드를 게시하십시오. – Jacob

+0

코드를 포함했습니다 – Alia

+0

lib를 사용해 보시지 않겠습니까? 이것은 작업을 크게 단순화합니다. 내 BB 앱 http://twitter4j.org/en/index.html – 8vius

답변

0

:

이 :

httpConn.setRequestMethod(HttpProtocolConstants.HTTP_METHOD_GET); 

을이

감사합니다, 여기에

코드입니다 :

httpConn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); 

은 상호 배타적 인 것들입니다. 서버에 데이터를 게시하고 있으므로 POST (GET이 아님) 여야합니다.

관련 문제