Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
Алекс_РК
0 / 0 / 0
Регистрация: 09.12.2016
Сообщений: 4
#1

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

09.12.2016, 18:57. Просмотров 360. Ответов 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
Не могу запустить Android приложение. Вроде всё установил, кучу всяких проблем решил загуглив, как их решить, ну вроде всё уже, и всё равно...

Ошибка "Unknown method "e" of "org.apache.commons.logging.Log" - Программирование Android
Unknown method 'e' of 'org.apache.commons.logging.Log' package com.mycompany.myapp; import android.widget.*; import...

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

Unknown host services.gradle.org - Программирование Android
Привет, помогите пожалуйста. Снизу выбивает сообщение, а в центре вместо изображения телефона с надписью вверху &quot;Hello World&quot;...

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

Постепенно вывести на экран слово "Java", в котором буквы состоят из "интересных" элементов - Программирование Android
Я учусь в универе и вот пытаюсь делать лабораторные по языку java, только на свой телефон с помощью android studio )) До этого все...

4
petruchodd
109 / 106 / 11
Регистрация: 23.06.2009
Сообщений: 582
14.12.2016, 15:25 #2
хм. Банальное но многим помогает - проверить интернет соединение на эмуляторе/девайсе. Возможно попробовать вкл/выкл. Ты не один с такой бедой именно с этим сайтом.
+апикей какой то маленький.
Java
1
http://api.openweathermap.org/data/2.5/weather?q=London&appid=5cabd6f62d225c47a9b2ce369da44636
1
Pablito
2525 / 2004 / 624
Регистрация: 12.05.2014
Сообщений: 7,030
Завершенные тесты: 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
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.12.2016, 11:43
Привет! Вот еще темы с ответами:

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

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

Исходники API org.apache.http - Программирование Android
Захожу значит в папку sdk/sources/android-19/org/apache А там всего лишь одна папка: harmony. Спрашивается - где остальное?...

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


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

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

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