Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
ILNAR_93
Android
219 / 219 / 22
Регистрация: 19.01.2013
Сообщений: 1,656
Записей в блоге: 3
#1

Использование HttpsURLConnection - Программирование Android

06.02.2015, 11:00. Просмотров 1028. Ответов 5
Метки нет (Все метки)

Используется не подписанный сертификат безопасности.! GEt запрос проходит отлично.... Не получается POST (нужно отправить данные)

Отправляю GET запрос на https и получаю ответ, тут все нормально...
Кликните здесь для просмотра всего текста
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
64
65
66
public void authorization(){
        
    
        
        try
        {
    
            
            URL url = new URL("https://myURL.ru/monit/mobile/vehicle/login");
            HttpsURLConnection con;
    
            con= (HttpsURLConnection) url.openConnection();
            con.setRequestMethod("GET");
            con.setRequestProperty("accept", "application/xml");
            
            
            
            /////
            SSLContext ctx = SSLContext.getInstance("TLS");
            ctx.init(null, new TrustManager[] {
              new X509TrustManager() {
                public void checkClientTrusted(X509Certificate[] chain, String authType) {}
                public void checkServerTrusted(X509Certificate[] chain, String authType) {}
                public X509Certificate[] getAcceptedIssuers() { return new X509Certificate[]{}; }
              }
            }, null);
        
            HttpsURLConnection.setDefaultSSLSocketFactory(ctx.getSocketFactory());
            
            HttpsURLConnection.setDefaultHostnameVerifier(new HostnameVerifier() {
                  public boolean verify(String hostname, SSLSession session) {
                    return true;
                  }
                });
            /////
            
            
                        
            if (isCancelled()) return;
            
            try 
        {
                BufferedReader in = new BufferedReader(
                        new InputStreamReader(con.getInputStream()));
                String inputLine;
                StringBuffer response = new StringBuffer();
         
                while ((inputLine = in.readLine()) != null) {
                    response.append(inputLine);
                }
                in.close();
                Log.i("POST-GET", response.toString());
               // ParseV(response.toString());
            }
                catch (IOException e) { e.printStackTrace(); }
        
        }
            
        catch (Exception e) 
            {
                Log.d("Error GetServer", "Message error " + e.toString());  
                Log.i("d", e.toString());
                this.cancel(true);
            }
        
    }


Но вот мне нужно еще и POST отправить на https, вот тут проблема.. вот код:


Кликните здесь для просмотра всего текста
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
64
65
66
public void authorization(){
        
    
        
        try
        {
    
            
            URL url = new URL("https://myURL.ru/monit/mobile/vehicle/login");
            HttpsURLConnection con;
    
            con= (HttpsURLConnection) url.openConnection();
            con.setRequestMethod("POST");
            con.setRequestProperty("accept", "application/xml");
            
            
            
            /////
            SSLContext ctx = SSLContext.getInstance("TLS");
            ctx.init(null, new TrustManager[] {
              new X509TrustManager() {
                public void checkClientTrusted(X509Certificate[] chain, String authType) {}
                public void checkServerTrusted(X509Certificate[] chain, String authType) {}
                public X509Certificate[] getAcceptedIssuers() { return new X509Certificate[]{}; }
              }
            }, null);
        
            HttpsURLConnection.setDefaultSSLSocketFactory(ctx.getSocketFactory());
            
            HttpsURLConnection.setDefaultHostnameVerifier(new HostnameVerifier() {
                  public boolean verify(String hostname, SSLSession session) {
                    return true;
                  }
                });
            /////
            
            
                        
            if (isCancelled()) return;
            
            try 
        {
                BufferedReader in = new BufferedReader(
                        new InputStreamReader(con.getInputStream()));
                String inputLine;
                StringBuffer response = new StringBuffer();
         
                while ((inputLine = in.readLine()) != null) {
                    response.append(inputLine);
                }
                in.close();
                Log.i("POST-GET", response.toString());
               // ParseV(response.toString());
            }
                catch (IOException e) { e.printStackTrace(); }
        
        }
            
        catch (Exception e) 
            {
                Log.d("Error GetServer", "Message error " + e.toString());  
                Log.i("d", e.toString());
                this.cancel(true);
            }
        
    }


Добавлено через 19 часов 55 минут
Вопрос решен... Спасибо как всегда помогли

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
 public String echoCuties() throws IOException {
        // Encode the query
        String encodedQuery = URLEncoder.encode("2", "UTF-8");
        String encodedQuery2 = URLEncoder.encode("9872277610", "UTF-8");
        // This is the data that is going to be send to itcuties.com via POST request
        // 'e' parameter contains data to echo
        String postData = "{id:" + encodedQuery+",password:"+encodedQuery2+"}";
         
        // Connect to google.com
        URL url = new URL("https://url.ru/monit/mobile/driver/login");
        HttpsURLConnection connection = (HttpsURLConnection) url.openConnection();
        connection.setDoOutput(true);
        connection.setRequestMethod("POST");
        connection.setRequestProperty("Content-Type", "application/json");
        connection.setRequestProperty("Content-Length",  String.valueOf(postData.length()));
         
        // Write data
        OutputStream os = connection.getOutputStream();
        os.write(postData.getBytes());
         
        // Read response
        StringBuilder responseSB = new StringBuilder();
        BufferedReader br = new BufferedReader(new InputStreamReader(connection.getInputStream()));
          
        String line;
        while ( (line = br.readLine()) != null)
            responseSB.append(line);
        Log.i("tags", "2");    
        // Close streams
        br.close();
        os.close();
         
        return responseSB.toString();
         
    }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.02.2015, 11:00     Использование HttpsURLConnection
Посмотрите здесь:

HttpsUrlConnection & bad_record_mac - Java Сети
Столкнулся с проблемой такого рода. Мне нужно подгружать страницу с одного сайта по https (сайт сказать не могу, он служебный). Но при...

Использование конструкторов. Перегрузка конструкторов. Использование свойств - C#
Помогите реализовать свойства, позволяющие осуществить проверку на допустимые значения для данных класса. using System; using...

Работа с двумерными числовыми массивами. Использование указателей. Использование функций пользователя. - C++
Помогите пожалуйста!!!!!!! Сделать три варианта: первый вариант – передача данных между функциями с помощью глобального...

Создание и использование своих @NamedQueries. Использование EntityManager - Java EE
Добрый день! Создавал классы сущностей и сессий через NetBeans генераторы кода. Использование стандартных...

Задачи на использование событий. Осуществить использование событий в программе с применением синтаксиса обработчика, рекомендованного для среды NET Fr - C#
NET Framework. Программа для поиска простых чисел среди чисел Фибоначчи. При нахождении очередного простого числа активировать событие...

Использование строк.Использование структур - C++
Задачка: Дана строка,состоящая из групп нулей и едениц. Найти и вывести на экран группы с нечетным количеством символов. И еще одна: ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,070
06.02.2015, 11:10     Использование HttpsURLConnection #2
Цитата Сообщение от ILNAR_93 Посмотреть сообщение
Вопрос решен... Спасибо как всегда помогли
Да обращайся если что)
Задам вопрос, может подскажешь: из другой страны ссылка редиректится на другой домен (например вместо ru > by), получаю редирект, но все равно не могу получить страницу. Не сталкивался с таким?
ILNAR_93
Android
219 / 219 / 22
Регистрация: 19.01.2013
Сообщений: 1,656
Записей в блоге: 3
06.02.2015, 14:30  [ТС]     Использование HttpsURLConnection #3
Rube,
С таким пока не сталкивался


Первое что в голову пришло это(может и бред, но все же):
Отловить куда идет переадресация и потом уже попробовать обратиться туда напрямую. Может так получишь ответ)...

А так ХЗ

Добавлено через 1 минуту
А может просто параметр какой то нужно в true или false
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,070
06.02.2015, 14:52     Использование HttpsURLConnection #4
Да вот тоже хз, переадресацию я ловлю в ответе, но по ней приходит тот же ответ "ваш браузер не поддерживает автоматическое перенаправление".
vindigo
18 / 18 / 3
Регистрация: 15.05.2014
Сообщений: 78
01.04.2015, 19:33     Использование HttpsURLConnection #5
ILNAR_93, Привет, а можете показать, как на сервере встречаете? Никак не могу разобраться, запутался уже совсем с этим json'ом.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.04.2015, 07:56     Использование HttpsURLConnection
Еще ссылки по теме:

C/C++ Использование функций, использование break - C++
Здравствуйте. Не знал как назвать тему, боялся что, если назову "КАК ЭТО РАБОТАЕТ?" то её удалят. Пишу программу для вычисления длинных...

Множественное наследование, Перегрузка функций, Перегрузка операторов, Использование дружественных функций и классов, Использование шаблонов классов - C++
Здравствуйте!!! Я бы хотел попросить помоч решить...ну или скинуть примеры таких задач, если вдруг у вас они завалялись на компе или...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
ILNAR_93
Android
219 / 219 / 22
Регистрация: 19.01.2013
Сообщений: 1,656
Записей в блоге: 3
02.04.2015, 07:56  [ТС]     Использование HttpsURLConnection #6
Привет vindigo, серверную часть писал не я, хз как он там встречает)

Серверная часть писалась на c#, думаю в интернете много стандартных примеров..
Yandex
Объявления
02.04.2015, 07:56     Использование HttpsURLConnection
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru