2016-09-14 2 views
2

Я некоторое время проверяю, но не могу найти информацию об этом, как точно подключить мое приложение Android к API Github. Я зарегистрировал его, имел токен, читал о конечных точках и все, но не могу понять, где использовать токен. Может кто-нибудь дать мне подсказку?Подключить Android-приложение к API Github

+0

Проверьте это видеоурок, если это может помочь - https://www.youtube.com/watch?v=Ldmc757EXaE – Tasos

+0

Извините, это может быть неправильный учебник, как его для совместного использования на Github – Tasos

+0

Да, для совместного использования проекта на GitHub существует довольно много учебников такого рода. Единственная статья, немного полезная до сих пор, это, но все равно не может ее получить. Http://streamdata.io/blog/github-android-server-sent-events/ – user6456773

ответ

1

Я использовал ниже код для подключения к GitHub Search Repo API в своем приложении для Android.


//Method 1: To Authorize API access for all HTTP call 
      //Uncomment this part of code and input your username and password 
//   Authenticator.setDefault(new Authenticator() { 
//    @Override 
//    protected PasswordAuthentication getPasswordAuthentication() { 
//     return new PasswordAuthentication("username", "password".toCharArray()); 
//    } 
//   }); 
      HttpURLConnection urlConnection; 
      URL url; 
      InputStream inputStream; 

      try{ 
       url = new URL("https://api.github.com/search/repositories?q="+"searchText"); 
       urlConnection = (HttpURLConnection) url.openConnection(); 

//Method 2: To Authorize API access while making HTTP request 

       //Uncomment this part of code and input your username and password 
//    String basicAuth = "Basic "+Base64.encodeToString("username:password".getBytes(), Base64.NO_WRAP); 
//    urlConnection.setRequestProperty ("Authorization", basicAuth); 

       //set request type 
       urlConnection.setRequestMethod("GET"); 

       //if you uncomment the following line GitHub API will not respond 
//    urlConnection.setDoOutput(true); 

       urlConnection.setDoInput(true); 
       urlConnection.connect(); 
       //check for HTTP response 
       int httpStatus = urlConnection.getResponseCode(); 

       //if HTTP response is 200 i.e. HTTP_OK read inputstream else read errorstream 
       if (httpStatus != HttpURLConnection.HTTP_OK) { 
        inputStream = urlConnection.getErrorStream(); 
       //print GitHub api hearder data 
        Map<String, List<String>> map = urlConnection.getHeaderFields(); 
        System.out.println("Printing Response Header...\n"); 
        for (Map.Entry<String, List<String>> entry : map.entrySet()) { 
         System.out.println(entry.getKey() 
           + " : " + entry.getValue()); 
        } 
       } 
       else { 
        inputStream = urlConnection.getInputStream(); 
       } 

       //read inputstream 
       BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream)); 
       String temp,response=""; 
       while((temp = bufferedReader.readLine())!=null){ 
        response+=temp; 
       } 

       //GitHub api has limit to access over http. 
       //Api rate limit is 10req/min for unauthenticated user and 30req/min is for authenticated user 
       boolean apiLimitExceeded = "false"; 
       if(response.contains("API rate limit exceeded")){ 
        apiLimitExceeded =true; 
       }else { 
        //convert data string into JSONObject 
        JSONObject obj = (JSONObject) new JSONTokener(response).nextValue(); 
        JSONArray items = obj.getJSONArray("items"); 

        //total result count and result status 
        total_count = obj.getString("total_count"); 
        incomplete_results = obj.getString("incomplete_results"); 
       } 

       urlConnection.disconnect(); 
      } catch (MalformedURLException | ProtocolException | JSONException e) { 
       e.printStackTrace(); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 

Отъезд мой проект GitHub, чтобы получить полное представление о том, как использовать API поиска репо GitHub в Android App. Ссылка: https://github.com/kvipul/Search-GitHub-Repo

Существует множество фильтров, которые предоставляет GitHub API. Ознакомьтесь с Документацией API поиска GitHub для получения более подробной информации - https://developer.github.com/v3/search/

Смежные вопросы