401 ответ при чтении твитов - PullRequest
       1

401 ответ при чтении твитов

0 голосов
/ 10 августа 2011

Я новичок в разработке мобильных приложений. Я занимаюсь разработкой приложения для ежевики, которое читает твиты с временной шкалы пользователя. Пока мне удалось получить токен доступа 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();
        }
    }

1 Ответ

0 голосов
/ 11 августа 2011

Я не эксперт по OAuth, но просто примечание:

Это:

httpConn.setRequestMethod(HttpProtocolConstants.HTTP_METHOD_GET);

и это:

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

- вещи взаимоисключающие,Вы публикуете данные на сервере, поэтому это должен быть POST (не GET).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...