Некоторое время назад я написал статью о том, как читать содержимое файла GitHub с помощью HttpURLConnection . В этом уроке мы создали простой InputStreamToString ”Утилита конвертации, которую мы будем использовать и в этом уроке.
Теперь давайте начнем с концепции «Базовая аутентификация». Реализация проверки подлинности HTTP Basic — это самый простой метод для обеспечения контроля доступа к веб-ресурсам, поскольку для этого не требуются файлы cookie, идентификатор сеанса и страницы входа. С помощью простого URL вы можете получить доступ к полному защищенному контенту
В этом уроке по Java я использую этот URL: https://raw.githubusercontent.com/Crunchify/All-in-One-Webmaster/master/readme.txt
Worth Noticing: Вышеуказанный URL не является частным, поэтому вы можете использовать его и без токена. Но если у вас есть private/secure repository и если вы не хотите, чтобы другие предоставляли имя пользователя / пароль, вы можете использовать Basic OAuth.
Давайте начнем.
Шаг 1:
Давайте создадим 1st Github Token, который нам нужно использовать в приложении Java ниже. Авторизуйтесь на Github.
Шаг 2:
Нажмите на Settings -> Applications
Шаг 3:
Теперь предоставьте описание токена и выберите Scopes. Нажмите на кнопку «Создать токен».
Вы должны увидеть токен как 4543bf423vrh46e343fw3bd9d54d7342c4dda97575ff6 на следующем экране. Обязательно скопируйте свой новый личный токен доступа сейчас. Вы не сможете увидеть это снова!
Шаг 4:
Создать программу Java CrunchifyReadGithubWithBasicAuthentication.java , Мы будем использовать два разных подхода для извлечения содержимого Github в этой программе. С HttpClient метод и URLConnection метод.
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
|
пакет crunchify. ком . учебные пособия ;
Импортировать Java. Ио. BufferedReader ;
Импортировать Java. Ио. IOException ;
Импортировать Java. Ио. InputStream ;
Импортировать Java. Ио. InputStreamReader ;
Импортировать Java. Ио. Читатель ;
Импортировать Java. Ио. StringWriter ;
Импортировать Java. Ио. Писатель ;
Импортировать Java. нетто. URL ;
Импортировать Java. нетто. URLConnection ;
Импортировать орг. апач . Общин. кодек. двоичный файл. Base64 ;
Импортировать орг. апач . http . HttpResponse ;
Импортировать орг. апач . http . клиент. HttpClient ;
Импортировать орг. апач . http . клиент. методы . HttpGet ;
Импортировать орг. апач . http . импл . клиент. BasicResponseHandler ;
Импортировать орг. апач . http . импл . клиент. DefaultHttpClient ;
/ **
* @author Crunchify.com
*
* /
@SuppressWarnings ( «устаревание» )
общественности учебный класс CrunchifyReadGithubWithBasicAuthentication {
общественности статический недействительным main ( Строка [ ] аргументы ) {
// Заменим этот токен вашим реальным токеном
строка знак знак равно 4543bf423vrh46e343fw3bd9d54d7342c4dda97575ff6 ;
строка URL знак равно raw.githubusercontent.com/Crunchify/All-in-One-Webmaster/master/readme.txt ;
// Метод HttpClient для получения контента Private Github с токеном Basic OAuth
getGithubContentUsingHttpClient ( токен , URL ) ;
// Метод URLConnection для получения контента Private Github с токеном Basic OAuth
getGithubContentUsingURLConnection ( токен , URL ) ;
}
@SuppressWarnings ( ресурс )
частный статический недействительным getGithubContentUsingHttpClient ( String знак , строка URL ) {
строка NEWURL знак равно https: // + знак + : х-OAuth основного @ + URL ;
HttpClient клиент знак равно новый DefaultHttpClient ( ) ;
HttpGet запрос знак равно новый HttpGet ( newUrl ) ;
Система. вне. println ( newUrl ) ;
пытаться {
HttpResponse ответ знак равно клиент. выполнить ( запрос ) ;
строка responseString знак равно новый BasicResponseHandler ( ) . handleResponse ( ответ ) ;
Система. вне. println ( responseString ) ;
} ловить ( IOException е ) {
эл . printStackTrace ( ) ;
}
}
частный статический недействительным getGithubContentUsingURLConnection ( String знак , строка URL ) {
строка NEWURL знак равно https: // + URL ;
Система. вне. println ( newUrl ) ;
пытаться {
URL myURL знак равно новый URL ( newUrl ) ;
подключение URLConnection знак равно myURL . openConnection ( ) ;
знак знак равно знак + : x-oauth-basic ;
строка authString знак равно Базовый + Base64 . encodeBase64String ( token . getBytes ( ) ) ;
подключение. setRequestProperty ( «Авторизация» , authString ) ;
InputStream crunchifyInStream знак равно подключение. getInputStream ( ) ;
Система. вне. println ( crunchifyGetStringFromStream ( crunchifyInStream ) ) ;
} ловить ( Исключение е ) {
эл . printStackTrace ( ) ;
}
}
// Утилита ConvertStreamToString () - мы называем ее crunchifyGetStringFromStream ()
частный статический строка crunchifyGetStringFromStream ( InputStream crunchifyStream ) бросает IOException {
если ( crunchifyStream ! знак равно ноль ) {
Писатель crunchifyWriter знак равно новый StringWriter ( ) ;
символ [ ] crunchifyBuffer знак равно новый символ [ 2048 ] ;
пытаться {
Читатель crunchifyReader знак равно новый BufferedReader ( новый InputStreamReader ( crunchifyStream , UTF-8 ) ) ;
ИНТ счетчик ;
в то время как ( ( счетчик знак равно crunchifyReader . читать ( crunchifyBuffer ) ) ! знак равно - 1 ) {
crunchifyWriter . написать ( crunchifyBuffer , 0 , счетчик ) ;
}
} в конце концов {
crunchifyStream . закрыть ( ) ;
}
вернуть crunchifyWriter . toString ( ) ;
} еще {
вернуть «Нет содержимого» ;
}
}
}
|
И все готово. Вы должны увидеть фактический контент в вашей консоли Eclipse. Дайте мне знать, если вы найдете какую-либо ошибку в этом.
Кроме того, если вы хотите получить доступ к тому же токену в командной строке / терминале Mac, используйте команду ниже.
0.00 (0%) 0 votes










