Как использовать API в Android? - PullRequest
3 голосов
/ 12 марта 2012

Я пытаюсь использовать этот API в своем приложении для Android. Это очень просто, вы даете ему крошечный URL , и он возвращает исходный.

Я впервые использую API. Итак, вот как я это сделал:

try {
    HttpClient client = new DefaultHttpClient(); 
    String url = "http://tiny.pl/htk" //The tiny URL 
    String getURL = "http://untiny.me/api/1.0/extract?url="+url+"&format=text"; //The API service URL
    HttpGet get = new HttpGet(getURL);
    HttpResponse responseGet = client.execute(get);  
    HttpEntity resEntityGet = responseGet.getEntity();  
    if (resEntityGet != null) {  
        //do something with the response
        Log.i("GET RESPONSE",EntityUtils.toString(resEntityGet));
        output.setText(EntityUtils.toString(resEntityGet)); //This is a TextView        
    }
    else {
        output.setText("null reponse");
    }
} catch(Exception e) {
    output.setText("exception");
}

Мои вопросы:

  • Правильно ли используется HttpGet при работе с API?
  • Если да, тогда Какие ошибки я допустил там? Я всегда получаю "исключение" в моем TextView.

Ответы [ 3 ]

2 голосов
/ 13 марта 2012

Убедитесь, что вы присваиваете «resEntityget» строке, когда вы конвертируете ее и повторно используете строку, а не пытаетесь конвертировать ее снова.Это приведет к ошибкам.

Попробуйте:

if (resEntityGet != null) {  
        String response = EntityUtils.toString(resEntityGet);
        Log.i("GET RESPONSE",response);
        output.setText(response); //This is a TextView        
    }
0 голосов
/ 13 марта 2012

Правильно ли использовать HttpGet при работе с API?

ДА

Если да, то какие ошибки я там допустил?Я всегда получаю "исключение" в моем TextView. :

, потому что вы передаете неправильный URL в HttpGet

Правильный путь:

Fist Добавить URL-параметры в URL:

ВАШ СМОТРЕТЬ, КАК:

String strurl="http://stackoverflow.com/questions/tagged/android?page=5&sort=newest&pagesize=15";

ИСПОЛЬЗОВАТЬ TinyURL «API»:

             HttpClient httpclient = new DefaultHttpClient();
HttpGet httppost = new HttpGet("http://tinyurl.com/api-create.php");
    // Add your data
    List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
    nameValuePairs.add(new BasicNameValuePair("url",strurl));

    httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

    // Execute HTTP Post Request
    HttpResponse response = httpclient.execute(httppost);
    HttpEntity resEntityGet = response.getEntity(); 
    tinyUrl=EntityUtils.toString(resEntityGet);  

Теперь используйте этот URL-адрес tinyUrl как:

try {
    HttpClient client = new DefaultHttpClient(); 

    HttpGet get = new HttpGet(tinyUrl);
    HttpResponse responseGet = client.execute(get);  
    HttpEntity resEntityGet = responseGet.getEntity();  
    if (resEntityGet != null) {  
        //do something with the response
        Log.i("GET RESPONSE",EntityUtils.toString(resEntityGet));
        output.setText(EntityUtils.toString(resEntityGet)); //This is a TextView        
    }
    else {
        output.setText("null reponse");
    }
} catch(Exception e) {
    output.setText("exception");
}

ИЛИ ЕСЛИ ВЫ ХОТИТЕ ИСПОЛЬЗОВАТЬ СТАТИЧЕСКИЙ URL, ТОГДА КОДИРУЙТЕ URL, ИСПОЛЬЗУЯ tinyurl с параметрами, затем передайте HttpGet() DONE!

0 голосов
/ 13 марта 2012

Из того, что я проверил, во время выполнения выдается исключение UnknownHostException.

...