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

UnknownHostException: Unable to resolve host "api.openweathermap.org" - Программирование Android

09.12.2016, 18:57. Просмотров 543. Ответов 4
Метки нет (Все метки)

Приветствую всех,
недавно стал изучать андройд и столкнулся с маленькой проблемкой...

Есть простое приложение для вывода погоды.

Для решения пытаюсь использовать "код1" или "код2" (ссылка на "openweathermap.org" сокращена, чужой аккаунт, взят для пробы..);
Данные с сайта "openweathermap.org" использую под "спойлером 3".

В обоих случаях пишет одну и туже ошибку: UnknownHostException: Unable to resolve host "api.openweathermap.org": No address associated with hostname.

В Манифесте - <uses-permission android:name="android.permission.INTERNET"/>
Библиотека Volley подключена.

Подскажите что не так, и как исправить.

зы. Буд признателен за любой ответ )

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
private static final String TAG = "Main";
    TextView txtView;
    EditText txtEdit;
    Button btnShow;
    ArrayList<String>words;
 
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main_layout);
 
        txtView = (TextView) findViewById(R.id.txtView);
        txtEdit = (EditText) findViewById(R.id.txtEdit);
        btnShow = (Button) findViewById(R.id.btnShow);
 
        btnShow.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                onBtnClick();
            }
        });
 
    }
 
    private void onBtnClick() {
        String word = txtEdit.getText().toString();
        String url ="http://api.openweathermap.org/data/2.5/weather?q=" + word.replace(" ", "%20") + "&appid=89f36c2e0f";
 
        RequestQueue queue = Volley.newRequestQueue(this);
        JsonArrayRequest request = new JsonArrayRequest(Request.Method.GET, url, null, new Response.Listener<JSONArray>() {
            @Override
            public void onResponse(JSONArray response) {
                Log.d(TAG, response.toString());
 
                try {
                    JSONObject jsonObject = response.getJSONObject(1);
                    JSONArray jsonWords = jsonObject.getJSONArray("weather");
                    words = new ArrayList<>();
                    Log.d(TAG, jsonWords.toString());
 
                    for (int i = 0; i < jsonWords.length(); i++){
                        String word = jsonWords.getString(i);
                        words.add(word);
                    }
 
                     txtView.setText(words.toString());
 
                } catch (JSONException e) {
                    e.printStackTrace();
                }
 
            }
        }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                Log.d(TAG, error.getMessage());
            }
        });
        queue.add(request);
 
 
    }
(здесь есть ошибки, но можно ли таким образом реализовать запрос?)
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
TextView txtView;
    EditText txtEdit;
    Button btnShow;
 
    private String TAG = "Main_Activity";
 
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main_layout);
        
        txtView = (TextView) findViewById(R.id.txtView);
        txtEdit = (EditText) findViewById(R.id.txtEdit);
        btnShow = (Button) findViewById(R.id.btnShow);
        
        btnShow.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                onBtnClick();
            }
        });
        
        
    }
 
        private void onBtnClick() {
 
        String city = txtEdit.getText().toString();
        String url ="http://api.openweathermap.org/data/2.5/weather?q=" + city.replace(" ", "%20") + "&appid=89f36c2e0f";
 
        RequestQueue queue = Volley.newRequestQueue(this);
        JsonObjectRequest request = new JsonObjectRequest(Request.Method.GET, url, null, new Response.Listener<JSONObject>() {
            @Override
            public void onResponse(JSONObject response) {
                Log.d(TAG, response.toString());
 
                try {
                    JSONObject pogoda = response.getJSONObject("weather");
 
                    displayP();
 
                } catch (JSONException e) {
                    e.printStackTrace();
                }
            }
        }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                Log.d(TAG, error.getMessage());
            }
        });
        queue.add(request);
    }
 
    private void displayP() {
 
        txtView.setText("weather");
 
    }
JSON
1
{"coord":{"lon":76.95,"lat":43.25},"weather":[{"id":701,"main":"Mist","description":"mist","icon":"50n"}],"base":"stations","main":{"temp":273.15,"pressure":1022,"humidity":81,"temp_min":273.15,"temp_max":273.15},"visibility":2300,"wind":{"speed":4,"deg":30},"clouds":{"all":90},"dt":1481292000,"sys":{"type":1,"id":7191,"message":0.2623,"country":"KZ","sunrise":1481249587,"sunset":1481282195},"id":1526384,"name":"Almaty","cod":200}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.12.2016, 18:57
Я подобрал для вас темы с готовыми решениями и ответами на вопрос UnknownHostException: Unable to resolve host "api.openweathermap.org" (Программирование Android):

Не могу запустить Android приложение. "Unable to resolve target 'android-8'"
Не могу запустить Android приложение. Вроде всё установил, кучу всяких проблем...

Ошибка "Unknown method "e" of "org.apache.commons.logging.Log"
Unknown method 'e' of 'org.apache.commons.logging.Log' package...

"Cannot resolve symbol R" после очистки проекта
Был нормальный проект, но вот я решил его почистить. Почистил. Теперь у меня не...

Исправить ошибку "cannot resolve symbol"
Есть вот такая вот строчка кода : ...

Unknown host services.gradle.org
Привет, помогите пожалуйста. Снизу выбивает сообщение, а в центре вместо...

Работа с БД, связывание таблиц "фильмы", "жанры", "режиссеры"
Ребят, всем привет! накидайте какие-нить идеи по реализации ситуация такая...

4
petruchodd
125 / 122 / 18
Регистрация: 23.06.2009
Сообщений: 655
14.12.2016, 15:25 #2
хм. Банальное но многим помогает - проверить интернет соединение на эмуляторе/девайсе. Возможно попробовать вкл/выкл. Ты не один с такой бедой именно с этим сайтом.
+апикей какой то маленький.
Java
1
http://api.openweathermap.org/data/2.5/weather?q=London&appid=5cabd6f62d225c47a9b2ce369da44636
1
Pablito
2652 / 2134 / 726
Регистрация: 12.05.2014
Сообщений: 7,448
Завершенные тесты: 1
14.12.2016, 16:30 #3
https://github.com/SubzeroUA/OpenWeatherApp
дарю, код неидеален (мягко сказано), но работает на 90%, я просто перелил это из старого закрытого репозитория на bitbucket-е на github

если местоположение не определится - в настройках указать название города (такое было задание)

в build.gradle не забудь вставить свой api key
UnknownHostException: Unable to resolve host "api.openweathermap.org"UnknownHostException: Unable to resolve host "api.openweathermap.org"
1
Алекс_РК
0 / 0 / 0
Регистрация: 09.12.2016
Сообщений: 4
15.12.2016, 07:10  [ТС] #4
Ооо, народ, спасибо за внимание к моей проблеме.
Отдельное спасибо Паблито за подарки

Но проблема оказалась банальна: Сменил Genymotion на встроенный эмулятор и проблема отпала, программа работает..

зы. Лишний раз убедился, что лучше проверять на реальном устройстве )

Тема закрыта. Спасибо.
0
Pablito
15.12.2016, 11:43     UnknownHostException: Unable to resolve host "api.openweathermap.org"
  #5

Не по теме:

я писал и тестил на genymotion так что проблема точно была не в нем

0
15.12.2016, 11:43
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.12.2016, 11:43
Привет! Вот еще темы с ответами:

Постепенно вывести на экран слово "Java", в котором буквы состоят из "интересных" элементов
Я учусь в универе и вот пытаюсь делать лабораторные по языку java, только на...

Выбор платформы разработки "1С Мобильная платформа" или "Android Studio"
Всем, здравствуйте! Есть задача по разработке клиента для терминала сбора...

При эмулировании вместо надписи "Hello world" отображается "android"
Привет форумчане! Я только-только начинал программировать на андроиде. Поставил...

Как "превратить" string "6.971245e-001" во float?
Число конечно пример


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

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

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