Authorization for github.com on Android

前端 未结 3 1448
遇见更好的自我
遇见更好的自我 2021-01-01 06:23

Help me please. I make client for android for github.com api v3 and i have a trouble with authorization. (login = mytest12345 , pass = 12345test)

http://developer.g

相关标签:
3条回答
  • 2021-01-01 06:56
    def encoded = Base64.getEncoder().encodeToString((username + ":" + password).getBytes());
    request.setHeader("Authorization", "Basic " + encoded);
    
    0 讨论(0)
  • 2021-01-01 06:58

    I know you want it in Java, but you might be interested in an answer I just provided to another question for further Python examples.

    In order to authenticate I had to specifically state the type of authentication (what follows is Python code):

    base64string = base64.encodestring('%s:%s' % (username, passwd)).replace('\n', '')
    req.add_header("Authorization", "Basic %s" % base64string)
    

    But it doesn't appear that you are adding the "Basic " prefix. Try adding that in and seeing if you get any success.

    0 讨论(0)
  • 2021-01-01 07:10

    Finally, after wasting one full day I got it. This is my working code.Just pass uName & password, it'll return JSON string.

    public String Authorization(String username, String password) {
        String result = null;
        HttpClient client = new DefaultHttpClient();
        HttpGet httpGet = new HttpGet("https://api.github.com/user");
    
        String encode = Base64.encodeToString((username + ":" + password).getBytes(), Base64.DEFAULT).replace("\n", "");
        httpGet.setHeader("Authorization", "Basic " + encode);
        try {
            HttpResponse httpResponse = client.execute(httpGet);
            InputStream inputStream = httpResponse.getEntity().getContent();
            InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
            BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
            StringBuilder stringBuilder = new StringBuilder();
            String bufferedStrChunk = null;
            while ((bufferedStrChunk = bufferedReader.readLine()) != null) {
                stringBuilder.append(bufferedStrChunk);
            }
    
            result = stringBuilder.toString();
    
        } catch (ClientProtocolException cpe) {
            System.out.println("ClientProtocolException :" + cpe);
            cpe.printStackTrace();
        } catch (IOException ioe) {
            System.out.println("IOException :" + ioe);
            ioe.printStackTrace();
        }
    
        return result;
    }
    

    Reference links : Link1 & Link for basci Auth & Link for web flow:Android

    0 讨论(0)
提交回复
热议问题