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

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

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

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

20.05.2015, 18:52. Просмотров 628. Ответов 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


подскажите плиз
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.05.2015, 18:52
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Подключение к серверу (Программирование Android):

Подключение к FTP серверу. не получается =( - Программирование Android
Что я делаю не так? Использовал тестовый FTP сервер, чтобы подружить приложение с ФТП, логин и пароль видите, можете даже подключиться, все...

Удаленное подключение к серверу через http - Программирование Android
Не как не могу найти информацию о том, как сделать что бы приложение обращалась к серверу по заданному http адресу и что бы все данные...

Android Клиент-Сервер подключение к серверу в сети Wi-Fi - Программирование Android
Доброго времени суток, уважаемые форумчане! Ничего не смог найти по данному вопросу или искал не так или не там, направьте в нужном...

Не подключается к серверу MySQL - Программирование Android
Здравствуйте. Много тем перечитал, даже нашёл работающий исходник. Проблема только в том, что у меня почему-то не подключается к Mysql. ...

Передать серверу массив - Программирование Android
Есть рабочая программа в вижуал студио на c#, которая отправляет на сервер массив байтов. Создаю аналог этой программы в android studio,...

Передать серверу массив - Программирование Android
Есть рабочая программа в вижуал студио на c#, которая отправляет на сервер массив байтов. Создаю аналог этой программы в android studio,...

10
Pablito
2506 / 1990 / 620
Регистрация: 12.05.2014
Сообщений: 6,953
Завершенные тесты: 1
20.05.2015, 18:58 #2
Возникает ошибка при попытке регистрации
1
akyma40
16 / 15 / 3
Регистрация: 20.05.2015
Сообщений: 115
20.05.2015, 19:11  [ТС] #3
стоп, я чет не понял, мне надо с отдельного класса делать или как?
0
androbro
326 / 287 / 61
Регистрация: 17.10.2014
Сообщений: 854
20.05.2015, 20:18 #4
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от akyma40 Посмотреть сообщение
стоп, я чет не понял, мне надо с отдельного класса делать или как?
тебе надо в отдельном потоке делать
1
akyma40
16 / 15 / 3
Регистрация: 20.05.2015
Сообщений: 115
21.05.2015, 20:44  [ТС] #5
ну я понял, но как. я новичок в java и android, даже не представляю как это делать

Добавлено через 1 час 41 минуту
androbro, А все, я разобрался. но вот как инфу мне выводить теперь? там же finViewById() не работает...
0
CoolMind
419 / 402 / 65
Регистрация: 06.10.2012
Сообщений: 1,727
21.05.2015, 22:44 #6
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
akyma40, для вывода в компоненты информации используются события onPostExecute и onPreExecute AsyncTask'а.
1
akyma40
16 / 15 / 3
Регистрация: 20.05.2015
Сообщений: 115
30.05.2015, 16:10  [ТС] #7
CoolMind, я через интерфейс Runnable это сделал, но вот как вывести данные на экран незнаю
0
CoolMind
419 / 402 / 65
Регистрация: 06.10.2012
Сообщений: 1,727
31.05.2015, 00:24 #8
akyma40, может быть, так:
http://stackoverflow.com/questions/1...d-and-runnable
http://stackoverflow.com/a/4370458/2914140
1
akyma40
16 / 15 / 3
Регистрация: 20.05.2015
Сообщений: 115
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 минут
аааа, блин, все нормально... просто права забыл запросить
0
CoolMind
419 / 402 / 65
Регистрация: 06.10.2012
Сообщений: 1,727
31.05.2015, 23:11 #10
akyma40, согласен. Этот мутный Андроид вечно молчит, когда не хватает прав. Вспоминаешь о них, когда все остальные средства уже испытаны и не работают.
0
akyma40
16 / 15 / 3
Регистрация: 20.05.2015
Сообщений: 115
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);
* * * * }
0
01.06.2015, 12:51
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.06.2015, 12:51
Привет! Вот еще темы с ответами:

Оборвать POST-запрос к серверу - Программирование Android
Создаю в новом потоке POST запрос к серверу и отправляю на него данные. Делаю проверку, что если по какой-то случайности данные не будут...

Не подключается к серверу через Socket - Программирование Android
Привет. Подключаюсь к серверу так: try { ShowMessage("try"); //InetAddress ipAddress = InetAddress.getByName(HOST); //...

Ожидание подключения к серверу (ProgressDialog) - Программирование Android
Здравствуйте! Мне нужно, чтобы при переходе на MainActivity вылазил ProgressDialog (он проверяет есть ли подключение к серверу), если...

Клиент Android не коннектится к Серверу пк - Программирование Android
Клиент Android не коннектится к Серверу ПК. Сервер: import java.io.*; import java.net.*; public class Server { ...


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

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

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