Домой Учебники по Java и J2EE Как читать содержимое файла GitHub с помощью утилиты HttpURLConnection + ConvertStreamToString ()

Как читать содержимое файла GitHub с помощью утилиты HttpURLConnection + ConvertStreamToString ()

422
0

В этом уроке по Java мы рассмотрим шаги для получения содержимого URL GitHub с помощью HttpURLConnection. Другими словами, ниже приведен Java API для получения содержимого файла из GitHub.

каждый HttpURLConnection экземпляр используется для создания одного запроса, но основное сетевое соединение с сервером HTTP может прозрачно использоваться другими экземплярами. getHeaderFields() Возвращает неизменяемую карту полей заголовка . Ключи карты — это строки, представляющие имена полей заголовка ответа. Каждое значение карты представляет собой неизменяемый список строк, который представляет соответствующие значения полей.

Теперь давайте начнем:

  1. Создать класс CrunchifyLoadGithubContent.java
  2. Мы будем загружать содержимое: https://raw.githubusercontent.com/Crunchify/wp-super-cache/master/wp-cache.php (из плагина: WP Super Cache Github Repo)
  3. Получить все поля заголовка с помощью API getHeaderFields (). Нам нужно это, чтобы узнать, перенаправляется ли вышеуказанный URL или любой другой URL или нет? Примечание: это совершенно необязательно. В случае перенаправления HTTP 301 и HTTP 302 это поможет.
  4. Создать API crunchifyGetStringFromStream(InputStream crunchifyStream) конвертировать поток в строку.
  5. Вывести тот же вывод на консоль.

ПРИМЕЧАНИЕ. Статус HTTP 301 означает, что ресурс (страница) постоянно перемещен в новое место. 302 состоит в том, что запрашиваемый им ресурс временно находится под другим URI. Главным образом 301 против 302 важен для индексации в поисковых системах, поскольку их сканеры учитывают это и передают рейтинг страницы при использовании 301.

Кроме того, есть предположение, что URL GitHub должен быть общедоступным.

CrunchifyLoadGithubContent.java

Джава
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 ( ) ;
Карта < Строка , Список >> crunchifyHeader знак равно crunchify http . getHeaderFields ( ) ;
// Если 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 .

crunchifyHeader = crunchifyHttp.getHeaderFields (); Значение отладки

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
     ] ,
     XXSSЗащита = [
         1 ; режим = блок
     ] ,
     Истекает = [
         Пн ,
         27 октября 2014 года : 00 : 31GMT
     ] ,
     XПоданоBy = [
         кешdfw1825DFW
     ] ,
     ИсточникВозраст = [
         14
     ] ,
     Соединение = [
         KeepЖивой
     ] ,
     Сервер = [
         апаш
     ] ,
     XCache = [
         УДАР
     ] ,
     CacheControl = [
         Максвозраст = 300
     ] ,
     XСодержимоеТипПараметры = [
         nosniff
     ] ,
     XFrameОпции = [
         Отрицать
     ] ,
     СтрогийТранспортБезопасность = [
         Максвозраст = 31536000
     ] ,
     Варь = [
         Авторизация ,
         ПринятьКодировка
     ] ,
     ДоступКонтрольРазрешитьПроисхождение = [
         https : //render.githubusercontent.com
     ] ,
     Дата = [
         Пн ,
         27 октября 2014 года : 55 : 31GMT
     ] ,
     Через = [
         1.1varnish
     ] ,
     KeepAlive = [
         тайм-аут = 10 ,
         макс = 50
     ] ,
     ПринятьДиапазоны = [
         байтов
     ] ,
     СодержаниеТип = [
         текст / простой текст ; charset = utf8
     ] ,
     СодержаниеБезопасностьПолитика = [
         по умолчаниюsrc 'none'
     ]
}

Как читать содержимое файла GitHub с помощью утилиты HttpURLConnection + ConvertStreamToString ()

0.00 (0%) 0 votes

ЧИТАТЬ ТАКЖЕ:  Что такое Hibernate? Основы реализации Hibernate Core

ОСТАВЬТЕ ОТВЕТ

Пожалуйста, введите ваш комментарий!
пожалуйста, введите ваше имя здесь