Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
талраш
0 / 0 / 0
Регистрация: 26.02.2013
Сообщений: 33
1

Запросы на API сайта из приложения перестали работать после перехода на https

16.02.2017, 17:06. Просмотров 320. Ответов 5
Метки нет (Все метки)

Здравствуйте. Нужна помощь по приложению. После того как сайт переехал с http на 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
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
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
import android.app.Activity;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Handler;
 
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
 
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.ArrayList;
 
 
public class Splashscreen extends Activity {
    public static ArrayList<DataO> OrderData;
    public static String api_key="0";
    public static int indexTrash=0;
    public static int indexshop=0;
 
 
 
    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        new DataOInit().execute();
        setContentView(R.layout.splashscreen);
    }
    public class DataOInit extends AsyncTask<Void, Void, String> {
 
        HttpURLConnection urlConnection = null;
        BufferedReader reader = null;
        String resultJson = "";
 
        @Override
        protected String doInBackground(Void... params) {
            // получаем данные с внешнего ресурса
            try {
                URL url = new URL("https://medkey.ru/api/index.php?type=catalog");
 
                urlConnection = (HttpURLConnection) url.openConnection();
                urlConnection.setRequestMethod("GET");
                urlConnection.connect();
 
                InputStream inputStream = urlConnection.getInputStream();
                StringBuffer buffer = new StringBuffer();
 
                reader = new BufferedReader(new InputStreamReader(inputStream));
 
                String line;
                while ((line = reader.readLine()) != null) {
                    buffer.append(line);
                }
 
                resultJson = buffer.toString();
 
            } catch (Exception e) {
                e.printStackTrace();
            }
            return resultJson;
        }
 
        @Override
        protected void onPostExecute(String strJson) {
            super.onPostExecute(strJson);
 
            JSONObject dataJsonObj = null;
            OrderData = new ArrayList<>();
            String name,price,description,picture;
            int id;
 
            try {
                dataJsonObj = new JSONObject(strJson);
                JSONArray events = dataJsonObj.getJSONArray("events");
                for (int i = 0; i < events.length(); i++) {
                    JSONObject orderItem = events.getJSONObject(i);
 
                    name = orderItem.getString("name");
                    price = orderItem.getString("price");
                    id = orderItem.getInt("id");
                    description = orderItem.getString("description");
                    picture = orderItem.getString("picture");
                    OrderData.add(
                            new DataO(
                                    name,
                                    price,
                                    id,
                                    description,
                                    picture
                            )
                    );
 
 
                }
                new Handler().postDelayed(new Runnable()
                {
                    @Override
                    public void run()
                    {
                        Intent i = new Intent(Splashscreen.this, MainActivity.class);
                        startActivity(i);
                        finish();
                    }
                },5*1000);
            } catch (JSONException e) {
                e.printStackTrace();
            }
        }
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.02.2017, 17:06
Ответы с готовыми решениями:

Перестали работать стили после загрузки сайта на хостинг
Заказали 5 вариантов печати таблицы. Сделал так &lt;link rel=&quot;stylesheet&quot;...

После переноса сайта перестали работать стили, яваскрипты, и стало невозможно зайти в админку
Добрый день! В общем, проблема такая: после переноса сайта перестали работать...

Поставил SP5 на VB 6.0 и SQL запросы перестали работать!
Прошу Вас, пожалуйста помогите разобраться с такой проблемой Имея проект на...

Смена всех путей подключения CSS и JS после перехода на https
Доброго времени дня, уважаемые господа. Столкнулся вот с такой проблемой. ...

Перестали работать некоторые приложения
Все началось с того, что после загрузки системы выдавало ошибку что &quot;Защитник...

5
demixdn
310 / 255 / 79
Регистрация: 31.10.2016
Сообщений: 619
16.02.2017, 17:25 2
талраш, вам нужно объединиться с inetinf для решения одной и той же проблемы. Хотя у вас попроще, у вас нормальный сертификат от Comodo. Но зато вы более устаревшие методы для работы с инетом используете.
Но все равно должен сказать: талраш, чтоб сделать код лучше - используйте Retrofit2 + OkHttp. Retrofit часто доверенные сертификаты сам пропускает, не нужны пляски с сертификатами.
0
inetinf
0 / 0 / 8
Регистрация: 29.07.2014
Сообщений: 510
17.02.2017, 10:34 3
demixdn, Я решил эту задачу с самописными сертификатами использовал библиотеки
import android.content.Context;
import android.util.Log;
import com.devcolibri.androidandmysql.R;
import org.apache.http.NameValuePair;
import org.apache.http.client.utils.URLEncodedUtils;
import org.json.JSONException;
import org.json.JSONObject;

import javax.net.ssl.*;
import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URL;
import java.security.KeyStore;
import java.util.List;
import static java.lang.System.out;

Добавлено через 9 минут
Очень помогли вот эти статьи
https://developer.android.com/traini...l#HttpsExample
http://my-it-notes.com/2011/09/how-t...te-on-android/
https://sohabr.net/post/194530/
0
petruchodd
18.02.2017, 04:59
  #4

Не по теме:

чудики которые советуют использовать ретрофиты - я б им руки отрывал

0
androbro
343 / 303 / 68
Регистрация: 17.10.2014
Сообщений: 897
18.02.2017, 17:13 5
petruchodd, обоснуете?
0
demixdn
310 / 255 / 79
Регистрация: 31.10.2016
Сообщений: 619
20.02.2017, 15:07 6
petruchodd, я программировал с AsyncTask + HttpUrlConnection, я делал сервисы с org.apache.HttpClient, я делал LoadManager + Volley, а сейчас использую RxJava + Retrofit. И для работы с Rest API Retrofit лучший инструмент. Приведите примеры, в которых что-то справляется лучше чем он?
0
20.02.2017, 15:07
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.02.2017, 15:07

Перестали работать некоторые Метро-приложения
Система win 8 x64. Не работают приложения календарь, сообщения, фотографии....

Перестали работать 32-битные приложения в 54-битной Виндоус7
1. Процессор..........Intel Pentium(R) 4 CPU 3.00GHz 2. Материнская...

Перестали работать консольные приложения на с++ в visual studio2013
Учу с++, не писал с месяц ничего в visual studio2013. Перестали работать...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

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