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

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

Войти
Регистрация
Восстановить пароль
 
akyma40
16 / 15 / 3
Регистрация: 20.05.2015
Сообщений: 103
#1

Подключение к серверу - Android

20.05.2015, 18:52. Просмотров 562. Ответов 10
Метки нет (Все метки)

я почему то не могу подключиться к серверу, сразу вылетает, не могу понять причины
вот код:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
HttpClient client = new DefaultHttpClient();
        HttpGet request = new HttpGet("https://api.vk.com/method/users.get?user_id=205387401&v=5.32"); 
                                // replace with your url
 
        HttpResponse response;
        try {
            response = client.execute(request);
             
            Log.d("Response of GET request", response.toString());
        } catch (ClientProtocolException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
а вот логи ошибок:
Кликните здесь для просмотра всего текста
05-20 21:43:34.176: E/AndroidRuntime(6409): FATAL EXCEPTION: main
05-20 21:43:34.176: E/AndroidRuntime(6409): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.jsonparser/com.example.jsonparser.MainActivity}: android.os.NetworkOnMainThreadException
05-20 21:43:34.176: E/AndroidRuntime(6409): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2184)
05-20 21:43:34.176: E/AndroidRuntime(6409): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2211)
05-20 21:43:34.176: E/AndroidRuntime(6409): at android.app.ActivityThread.access$600(ActivityThread.java:149)
05-20 21:43:34.176: E/AndroidRuntime(6409): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1300)
05-20 21:43:34.176: E/AndroidRuntime(6409): at android.os.Handler.dispatchMessage(Handler.java:99)
05-20 21:43:34.176: E/AndroidRuntime(6409): at android.os.Looper.loop(Looper.java:153)
05-20 21:43:34.176: E/AndroidRuntime(6409): at android.app.ActivityThread.main(ActivityThread.java:5086)
05-20 21:43:34.176: E/AndroidRuntime(6409): at java.lang.reflect.Method.invokeNative(Native Method)
05-20 21:43:34.176: E/AndroidRuntime(6409): at java.lang.reflect.Method.invoke(Method.java:511)
05-20 21:43:34.176: E/AndroidRuntime(6409): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:821)
05-20 21:43:34.176: E/AndroidRuntime(6409): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:584)
05-20 21:43:34.176: E/AndroidRuntime(6409): at dalvik.system.NativeStart.main(Native Method)
05-20 21:43:34.176: E/AndroidRuntime(6409): Caused by: android.os.NetworkOnMainThreadException
05-20 21:43:34.176: E/AndroidRuntime(6409): at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1125)
05-20 21:43:34.176: E/AndroidRuntime(6409): at java.net.InetAddress.lookupHostByName(InetAddress.java:385)
05-20 21:43:34.176: E/AndroidRuntime(6409): at java.net.InetAddress.getAllByNameImpl(InetAddress.java:236)
05-20 21:43:34.176: E/AndroidRuntime(6409): at java.net.InetAddress.getAllByName(InetAddress.java:214)
05-20 21:43:34.176: E/AndroidRuntime(6409): at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:137)
05-20 21:43:34.176: E/AndroidRuntime(6409): at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164)
05-20 21:43:34.176: E/AndroidRuntime(6409): at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119)
05-20 21:43:34.176: E/AndroidRuntime(6409): at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:365)
05-20 21:43:34.176: E/AndroidRuntime(6409): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)
05-20 21:43:34.176: E/AndroidRuntime(6409): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
05-20 21:43:34.176: E/AndroidRuntime(6409): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465)
05-20 21:43:34.176: E/AndroidRuntime(6409): at com.example.jsonparser.MainActivity.makeGetRequest(MainActivity.java:40)
05-20 21:43:34.176: E/AndroidRuntime(6409): at com.example.jsonparser.MainActivity.onCreate(MainActivity.java:29)
05-20 21:43:34.176: E/AndroidRuntime(6409): at android.app.Activity.performCreate(Activity.java:5020)
05-20 21:43:34.176: E/AndroidRuntime(6409): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
05-20 21:43:34.176: E/AndroidRuntime(6409): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2148)
05-20 21:43:34.176: E/AndroidRuntime(6409): ... 11 more


подскажите плиз
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Паблито
2015 / 1757 / 547
Регистрация: 12.05.2014
Сообщений: 6,236
Завершенные тесты: 1
20.05.2015, 18:58     Подключение к серверу #2
Возникает ошибка при попытке регистрации
akyma40
16 / 15 / 3
Регистрация: 20.05.2015
Сообщений: 103
20.05.2015, 19:11  [ТС]     Подключение к серверу #3
стоп, я чет не понял, мне надо с отдельного класса делать или как?
androbro
319 / 279 / 55
Регистрация: 17.10.2014
Сообщений: 827
20.05.2015, 20:18     Подключение к серверу #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от akyma40 Посмотреть сообщение
стоп, я чет не понял, мне надо с отдельного класса делать или как?
тебе надо в отдельном потоке делать
akyma40
16 / 15 / 3
Регистрация: 20.05.2015
Сообщений: 103
21.05.2015, 20:44  [ТС]     Подключение к серверу #5
ну я понял, но как. я новичок в java и android, даже не представляю как это делать

Добавлено через 1 час 41 минуту
androbro, А все, я разобрался. но вот как инфу мне выводить теперь? там же finViewById() не работает...
CoolMind
418 / 401 / 65
Регистрация: 06.10.2012
Сообщений: 1,723
21.05.2015, 22:44     Подключение к серверу #6
Сообщение было отмечено автором темы, экспертом или модератором как ответ
akyma40, для вывода в компоненты информации используются события onPostExecute и onPreExecute AsyncTask'а.
akyma40
16 / 15 / 3
Регистрация: 20.05.2015
Сообщений: 103
30.05.2015, 16:10  [ТС]     Подключение к серверу #7
CoolMind, я через интерфейс Runnable это сделал, но вот как вывести данные на экран незнаю
CoolMind
418 / 401 / 65
Регистрация: 06.10.2012
Сообщений: 1,723
31.05.2015, 00:24     Подключение к серверу #8
akyma40, может быть, так:
http://stackoverflow.com/questions/1...d-and-runnable
http://stackoverflow.com/a/4370458/2914140
akyma40
16 / 15 / 3
Регистрация: 20.05.2015
Сообщений: 103
31.05.2015, 08:16  [ТС]     Подключение к серверу #9
CoolMind, я даже так пробовал
Кликните здесь для просмотра всего текста
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
@Override
        protected void onPreExecute() {
            super.onPreExecute();
            tvInfo.setText("Начало");
        }
 
        @Override
        protected String doInBackground(Void... params) {
            String name, famil;
            name = "";
            famil = "";
            String httpString = "https://api.vk.com/method/users.get?user_id=205387401&v=5.32";
 
            HttpPost httppost = new HttpPost(httpString);
            HttpClient httpclient = new DefaultHttpClient();
 
            HttpResponse response;
 
            String responseBody;
 
            try {
 
                response = httpclient.execute(httppost);
                responseBody = EntityUtils.toString(response.getEntity());
                try {
                    JSONObject jsonobject = new JSONObject(responseBody);
                    JSONArray jsonarray = jsonobject.getJSONArray("response");
                    jsonobject = jsonarray.getJSONObject(0);
                    name = jsonobject.getString("first_name");
                    famil = jsonobject.getString("last_name");
                } catch (JSONException e) {
                    e.printStackTrace();
                }
 
            } catch (ClientProtocolException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
            return name + " " + famil;
        }
 
        @Override
        protected void onPostExecute(String result) {
            super.onPostExecute(result);
            tvInfo.setText("Результат: " + result);
        }


а оно вылетает и такие ошибки
Кликните здесь для просмотра всего текста
05-31 11:07:06.946: E/AndroidRuntime(17523): FATAL EXCEPTION: AsyncTask #1
05-31 11:07:06.946: E/AndroidRuntime(17523): java.lang.RuntimeException: An error occured while executing doInBackground()
05-31 11:07:06.946: E/AndroidRuntime(17523): at android.os.AsyncTask$3.done(AsyncTask.java:299)
05-31 11:07:06.946: E/AndroidRuntime(17523): at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273)
05-31 11:07:06.946: E/AndroidRuntime(17523): at java.util.concurrent.FutureTask.setException(FutureTask.java:124)
05-31 11:07:06.946: E/AndroidRuntime(17523): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307)
05-31 11:07:06.946: E/AndroidRuntime(17523): at java.util.concurrent.FutureTask.run(FutureTask.java:137)
05-31 11:07:06.946: E/AndroidRuntime(17523): at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
05-31 11:07:06.946: E/AndroidRuntime(17523): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
05-31 11:07:06.946: E/AndroidRuntime(17523): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
05-31 11:07:06.946: E/AndroidRuntime(17523): at java.lang.Thread.run(Thread.java:856)
05-31 11:07:06.946: E/AndroidRuntime(17523): Caused by: java.lang.SecurityException: Permission denied (missing INTERNET permission?)
05-31 11:07:06.946: E/AndroidRuntime(17523): at java.net.InetAddress.lookupHostByName(InetAddress.java:430)
05-31 11:07:06.946: E/AndroidRuntime(17523): at java.net.InetAddress.getAllByNameImpl(InetAddress.java:236)
05-31 11:07:06.946: E/AndroidRuntime(17523): at java.net.InetAddress.getAllByName(InetAddress.java:214)
05-31 11:07:06.946: E/AndroidRuntime(17523): at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:137)
05-31 11:07:06.946: E/AndroidRuntime(17523): at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164)
05-31 11:07:06.946: E/AndroidRuntime(17523): at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119)
05-31 11:07:06.946: E/AndroidRuntime(17523): at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:365)
05-31 11:07:06.946: E/AndroidRuntime(17523): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)
05-31 11:07:06.946: E/AndroidRuntime(17523): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
05-31 11:07:06.946: E/AndroidRuntime(17523): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465)
05-31 11:07:06.946: E/AndroidRuntime(17523): at com.example.asynctaskdemo.MainActivity$CatTask.doInBackground(MainActivity.java:63)
05-31 11:07:06.946: E/AndroidRuntime(17523): at com.example.asynctaskdemo.MainActivity$CatTask.doInBackground(MainActivity.java:1)
05-31 11:07:06.946: E/AndroidRuntime(17523): at android.os.AsyncTask$2.call(AsyncTask.java:287)
05-31 11:07:06.946: E/AndroidRuntime(17523): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
05-31 11:07:06.946: E/AndroidRuntime(17523): ... 5 more
05-31 11:07:06.946: E/AndroidRuntime(17523): Caused by: libcore.io.GaiException: getaddrinfo failed: EAI_NODATA (No address associated with hostname)
05-31 11:07:06.946: E/AndroidRuntime(17523): at libcore.io.Posix.getaddrinfo(Native Method)
05-31 11:07:06.946: E/AndroidRuntime(17523): at libcore.io.ForwardingOs.getaddrinfo(ForwardingOs.java:55)
05-31 11:07:06.946: E/AndroidRuntime(17523): at java.net.InetAddress.lookupHostByName(InetAddress.java:405)
05-31 11:07:06.946: E/AndroidRuntime(17523): ... 18 more
05-31 11:07:06.946: E/AndroidRuntime(17523): Caused by: libcore.io.ErrnoException: getaddrinfo failed: EACCES (Permission denied)
05-31 11:07:06.946: E/AndroidRuntime(17523): ... 21 more


Добавлено через 7 минут
аааа, блин, все нормально... просто права забыл запросить
CoolMind
418 / 401 / 65
Регистрация: 06.10.2012
Сообщений: 1,723
31.05.2015, 23:11     Подключение к серверу #10
akyma40, согласен. Этот мутный Андроид вечно молчит, когда не хватает прав. Вспоминаешь о них, когда все остальные средства уже испытаны и не работают.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.06.2015, 12:51     Подключение к серверу
Еще ссылки по теме:

Android Передать серверу массив
Передать серверу массив Android
Android Клиент-Сервер подключение к серверу в сети Wi-Fi Android
Android Клиент Android не коннектится к Серверу пк
Не подключается к серверу через Socket Android

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

Или воспользуйтесь поиском по форуму:
akyma40
16 / 15 / 3
Регистрация: 20.05.2015
Сообщений: 103
01.06.2015, 12:51  [ТС]     Подключение к серверу #11
CoolMind, не, тот код так и так не работает, а вот этот:
Кликните здесь для просмотра всего текста
Цитата Сообщение от akyma40 Посмотреть сообщение
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
@Override
* * * * protected void onPreExecute() {
* * * * * * super.onPreExecute();
* * * * * * tvInfo.setText("Начало");
* * * * }
@Override
* * * * protected String doInBackground(Void... params) {
* * * * * * String name, famil;
* * * * * * name = "";
* * * * * * famil = "";
* * * * * * String httpString = "https://api.vk.com/method/users.get?user_id=205387401&v=5.32";
HttpPost httppost = new HttpPost(httpString);
* * * * * * HttpClient httpclient = new DefaultHttpClient();
HttpResponse response;
String responseBody;
try {
response = httpclient.execute(httppost);
* * * * * * * * responseBody = EntityUtils.toString(response.getEntity());
* * * * * * * * try {
* * * * * * * * * * JSONObject jsonobject = new JSONObject(responseBody);
* * * * * * * * * * JSONArray jsonarray = jsonobject.getJSONArray("response");
* * * * * * * * * * jsonobject = jsonarray.getJSONObject(0);
* * * * * * * * * * name = jsonobject.getString("first_name");
* * * * * * * * * * famil = jsonobject.getString("last_name");
* * * * * * * * } catch (JSONException e) {
* * * * * * * * * * e.printStackTrace();
* * * * * * * * }
} catch (ClientProtocolException e) {
* * * * * * * * e.printStackTrace();
* * * * * * } catch (IOException e) {
* * * * * * * * e.printStackTrace();
* * * * * * }
* * * * * * return name + " " + famil;
* * * * }
@Override
* * * * protected void onPostExecute(String result) {
* * * * * * super.onPostExecute(result);
* * * * * * tvInfo.setText("Результат: " + result);
* * * * }
Yandex
Объявления
01.06.2015, 12:51     Подключение к серверу
Ответ Создать тему
Опции темы

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