|
31 / 31 / 0
Регистрация: 05.11.2011
Сообщений: 178
|
|||||||||||
Получение JSON с https сервера25.06.2012, 16:27. Показов 9983. Ответов 15
Метки нет (Все метки)
Стоит задача: получить с сервера данные в JSON формате. На сервере используется Basic Authentication. Логин пароль нужно передавать у формате: Логин:Пароль.
А также url сервера отдает неподписанные сертификаты. Проблема в том, что я не смог найти способа игнорировать проверку сертификатов. Делаю это так:
еще проблема: авторизуюсь таким образом:
полностью запутался в этой теме. раньше с таким не сталкивался... объясните, или помогите линком на какой нибудь толковый ман, с таким же механизмом получения JSON с сервера...
0
|
|||||||||||
| 25.06.2012, 16:27 | |
|
Ответы с готовыми решениями:
15
Получение JSON с сервера Не могу получить json по https Https соединение с сертфикатам пользователя и сервера |
|
Novatom
|
|
| 26.06.2012, 12:46 | |
|
Привет.
Вот тут написано, как добавить сертификат в доверенные. При запросе данных с сервера используешь MyHttpClient - с ним работаешь как с обычным get/post запросами. Всё работает, будут вопросы - спрашивай, постараюсь помочь. |
|
|
1162 / 986 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
|
||||||
| 28.06.2012, 02:36 | ||||||
1
|
||||||
|
73 / 73 / 3
Регистрация: 04.09.2012
Сообщений: 170
|
|
| 06.09.2012, 14:50 | |
|
Требуется решить ту же задачу - получить Json от https-сервера.
Материала что-то много не нашел. А приведенный тут код мне не совсем понятен. Разъясните, пожалуйста, по порядку все шаги (желательно с кодом, раздельно по шагам) для работы с https и последующим выполнением get-запросов для получения Json. Спасибо
0
|
|
|
1162 / 986 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
|
|
| 06.09.2012, 17:40 | |
|
executeHttpsGet запихаете url, получаете строку. что не понятно?
0
|
|
|
73 / 73 / 3
Регистрация: 04.09.2012
Сообщений: 170
|
|
| 06.09.2012, 18:03 | |
|
Запихать url в функу и получить результат - понятно.
Я хочу понять какие шаги необходимы и для чего. И какая строчка кода для чего нужна. Хотя бы потому, что на строке reader = new BufferedReader(new InputStreamReader( connection.getInputStream())); отбиваетс с "Hostname "xxxxxx" was not verified" Понимаю, что это связано с сертификатом и, вероятно, он является неизвестным и его как-то надо установить или подвердить... Как?
0
|
|
|
1162 / 986 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
|
|
| 06.09.2012, 21:07 | |
|
у меня все работает как есть без установки сертификатов. именно для этого и искал эту функцию.
Добавлено через 1 минуту а с установленными сертификатами должны работать обычные запросы без всего этого. Добавлено через 4 минуты а с браузера отправить запрос пробовали? работает?
0
|
|
|
73 / 73 / 3
Регистрация: 04.09.2012
Сообщений: 170
|
|||||||||||
| 06.09.2012, 22:29 | |||||||||||
|
Сертификат неизвестного издателя и с несоответствием с адресом страницы, потому, видимо и ругается.
Временно обошел костылем (украдено откуда-то)
Однако на моменте
Браузер на строку подключения ругается на сертификат, что тот неизвестный и не для этого сайта, жмешь "пофиг", он запрашивает имя пользователя и пароль и далее отдает Json-ответ (Chrome его прям и пишет). Вот потому я и спрашиваю, какая последовательность должна быть в коде? Где указывать имя пользователя и пароль? Пробовал добавлять setRequestProperty, как написано у Bes-s, но ничего не меняется - так же FileNotFoundException
0
|
|||||||||||
|
1162 / 986 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
|
|
| 06.09.2012, 22:55 | |
|
имя пользователя и пароль видимо должен быть в том же реквесте, иногда они идут в первом реквесте который дает некую id, и по ней делаются остальные реквесты.
0
|
|
|
73 / 73 / 3
Регистрация: 04.09.2012
Сообщений: 170
|
|
| 07.09.2012, 10:02 | |
|
А что значит "должен быть в реквесте"? В каком свойстве? Прописывание setRequestProperty не дает никакого результата. Точнее результат одинаковый, что со свойством "Authorization", что без него.
0
|
|
|
1162 / 986 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
|
|
| 07.09.2012, 21:15 | |
|
это нужно читать в документации службы которой вы эти реквесты посылаете.
0
|
|
|
73 / 73 / 3
Регистрация: 04.09.2012
Сообщений: 170
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 08.09.2012, 19:21 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Итак, покопался, поразбирался...
Вот чего собственно я хотел узнать, чтобы мне объяснили по шагам (разобрался сам, может кому пригодится): 1. Нам необходимо получить ответ от сервера с HTTPS с HTTP авторизацией. Это два раздельных процесса (моя ошибка и заключалась в том, что предположил это цельным процессом). 2. Соответственно необходимо проити проверку сертификата 3. Проверить имя хоста 4. Организовать авторизацию. Итак, для этого... 5. Для проверки сертификата имеется множество способов, один из них приведен в примере. Вот кусок кода который отвечает за проверку:
Видимо на этом месте барузеры проводят проверку сертификатов на надежные источники и т.п. И в том числе выдают сообщение "Сертификат безопасности этого веб-узла не был выпущен доверенным центром сертификации." Далее получаем SSLContext и настраиваем его с помощью нашего массива менеджеров trustAllCerts. А так же получаем SSLSocketFactory.
6. Создаем объект коннекта
Можно было бы выполнять запрос, однако у меня он далее и отбивался с оибкой "Hostname "xxxxxx" was not verified" 7. А вот для этого для мы добавляем к нашему HttpsUrlConnection-у проверку имени хоста
8. Далее настраиваем свойства коннекта
Так же как и выставление DoInput подразумевает операцию GET. Хотя я предпочитаю явно прописывать все то, что должно быть явным. 9. И вот момент указания HTTP-авторизации
token - логин+пароль в виде "login assword" переведенный в последовательность байт в формате Base64. Это делается с помощью
Случайно наткнулся на это несоответствие, поискал в интернете и нашел функцию. которая адекватно переводит в Base64-строку
10. Ну и собственно момент подключения. В отличие от ранее приведенного примера, где сразу производится попытка чтения из потока, правильнее выполнять код, по проверке состояния ответа (response)
В данном обработчике можно поставить соответствующую реакцию на ответ сервера 11. Ну и если ответ сервера все же HTTP_OK, то можно обрабатывать результат приведенным в примере способом
Это чисто моё изучение материала. Однако решил сюда написать, потому как подробно по шагам, что для чего... Такого описания я так нигде и не нашел. Может кому пригодится еще. Если где ошибся - поправьте, может и дополните чем полезным
3
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
1162 / 986 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
|
|
| 08.09.2012, 20:39 | |
|
О, да вы целый гайд написали. Подредактируйте и можете на хабре постить. Первая поправка - "6. Создаем объект коннекта" здесь мы еще и открываем конекшин.
0
|
|
|
73 / 73 / 3
Регистрация: 04.09.2012
Сообщений: 170
|
||
| 08.09.2012, 21:42 | ||
|
Спасибо! Возможно и напишу на Хабре. Не разу этого не делал
![]()
0
|
||
|
1162 / 986 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
|
|
| 08.09.2012, 22:45 | |
|
там же вызывается метод openConnection, что тут еще думать)
0
|
|
|
73 / 73 / 3
Регистрация: 04.09.2012
Сообщений: 170
|
||||||
| 08.09.2012, 23:01 | ||||||
|
И да, вот еще случайно заметил...
Кто в курсе, подскажите как правильнее штатными средствами переводить текст в текстовое представление Base64.
0
|
||||||
| 08.09.2012, 23:01 | |
|
Помогаю со студенческими работами здесь
16
Получение ответа в формате json
Парсинг JSON ответа от сервера
Как правильно парсить json с сервера Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|