В этом уроке по Java мы рассмотрим шаги для получения содержимого URL GitHub с помощью HttpURLConnection. Другими словами, ниже приведен Java API для получения содержимого файла из GitHub.
каждый HttpURLConnection экземпляр используется для создания одного запроса, но основное сетевое соединение с сервером HTTP может прозрачно использоваться другими экземплярами. getHeaderFields() Возвращает неизменяемую карту полей заголовка . Ключи карты — это строки, представляющие имена полей заголовка ответа. Каждое значение карты представляет собой неизменяемый список строк, который представляет соответствующие значения полей.
Теперь давайте начнем:
- Создать класс
CrunchifyLoadGithubContent.java - Мы будем загружать содержимое: https://raw.githubusercontent.com/Crunchify/wp-super-cache/master/wp-cache.php (из плагина: WP Super Cache Github Repo)
- Получить все поля заголовка с помощью API getHeaderFields (). Нам нужно это, чтобы узнать, перенаправляется ли вышеуказанный URL или любой другой URL или нет? Примечание: это совершенно необязательно. В случае перенаправления HTTP 301 и HTTP 302 это поможет.
- Создать API
crunchifyGetStringFromStream(InputStream crunchifyStream)конвертировать поток в строку. - Вывести тот же вывод на консоль.
ПРИМЕЧАНИЕ. Статус HTTP 301 означает, что ресурс (страница) постоянно перемещен в новое место. 302 состоит в том, что запрашиваемый им ресурс временно находится под другим URI. Главным образом 301 против 302 важен для индексации в поисковых системах, поскольку их сканеры учитывают это и передают рейтинг страницы при использовании 301.
Кроме того, есть предположение, что URL GitHub должен быть общедоступным.
|
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
|
пакет crunchify. ком . учебник ;
Импортировать Java. Ио. BufferedReader ;
Импортировать Java. Ио. IOException ;
Импортировать Java. Ио. InputStream ;
Импортировать Java. Ио. InputStreamReader ;
Импортировать Java. Ио. Читатель ;
Импортировать Java. Ио. StringWriter ;
Импортировать Java. Ио. Писатель ;
Импортировать Java. нетто. HttpURLConnection ;
Импортировать Java. нетто. URL ;
Импортировать Java. Util. Список ;
Импортировать Java. Util. Карта ;
/ **
* @author Crunchify.com
*
* /
общественности учебный класс CrunchifyLoadGithubContent {
общественности статический недействительным main ( Строка [ ] аргументы ) бросает Throwable {
строка ссылка на сайт знак равно https://raw.githubusercontent.com/Crunchify/All-in-One-Webmaster/master/all-in-one-webmaster-premium.php ;
URL crunchifyUrl знак равно новый URL ( ссылка ) ;
HttpURLConnection crunchifyHttp знак равно ( HttpURLConnection ) crunchifyUrl . openConnection ( ) ;
Карта < Строка , Список
// Если URL получает 301 и 302 HTTP-код перенаправления, тогда получаем новую ссылку URL.
// Этот цикл for является необязательным, если вы уверены, что ваш URL никуда не перенаправляется
за ( Строка заголовок : crunchifyHeader . получить ( ноль ) ) {
если ( заголовок . содержит ( 302 ) | | заголовок. содержит ( 301 ) ) {
ссылка на сайт знак равно crunchifyHeader . получить ( «Местоположение» ) . получить ( 0 ) ;
crunchifyUrl знак равно новый URL ( ссылка ) ;
crunchifyHttp знак равно ( HttpURLConnection ) crunchifyUrl . openConnection ( ) ;
crunchifyHeader знак равно crunchify http . getHeaderFields ( ) ;
}
}
InputStream crunchifyStream знак равно crunchify http . getInputStream ( ) ;
строка crunchifyResponse знак равно crunchifyGetStringFromStream ( crunchifyStream ) ;
Система. вне. println ( crunchifyResponse ) ;
}
// Утилита 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 ( ) ;
} еще {
вернуть «Нет содержимого» ;
}
}
}
|
Во время отладки я получил это как часть crunchifyHeader значение. Кроме того, это руководство также применимо к публичному репо Bitbucket .
|
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
|
{
нуль = [
HTTP / 1.1200OK // это то, что мы проверяем выше для цикла. Если 301 или 302, тогда получите новый URL.
] ,
X — Кэш — Хиты = [
1
] ,
ETag = [
94a3eb8b3b5505f746aa8530667969673a8e182d
] ,
Содержание — Длина = [
24436
] ,
X — XSS — Защита = [
1 ; режим = блок
] ,
Истекает = [
Пн ,
27 октября 2014 года : 00 : 31GMT
] ,
X — Подано — By = [
кеш — dfw1825 — DFW
] ,
Источник — Возраст = [
14
] ,
Соединение = [
Keep — Живой
] ,
Сервер = [
апаш
] ,
X — Cache = [
УДАР
] ,
Cache — Control = [
Макс — возраст = 300
] ,
X — Содержимое — Тип — Параметры = [
nosniff
] ,
X — Frame — Опции = [
Отрицать
] ,
Строгий — Транспорт — Безопасность = [
Макс — возраст = 31536000
] ,
Варь = [
Авторизация ,
Принять — Кодировка
] ,
Доступ — Контроль — Разрешить — Происхождение = [
https : //render.githubusercontent.com
] ,
Дата = [
Пн ,
27 октября 2014 года : 55 : 31GMT
] ,
Через = [
1.1varnish
] ,
Keep — Alive = [
тайм-аут = 10 ,
макс = 50
] ,
Принять — Диапазоны = [
байтов
] ,
Содержание — Тип = [
текст / простой текст ; charset = utf — 8
] ,
Содержание — Безопасность — Политика = [
по умолчанию — src 'none'
]
}
|
0.00 (0%) 0 votes








