Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 5.00
Zerony
1 / 1 / 1
Регистрация: 31.10.2010
Сообщений: 40
#1

HttpClient вылетает на телефоне - Программирование Android

24.09.2013, 16:47. Просмотров 1300. Ответов 3
Метки нет (Все метки)

Доброго времени суток!

Пытаюсь сделать http запрос с телефона (Sony Xperia V, Andoid 4.1.2)

http://www.cyberforum.ru/android-dev/thread2182527.html
Метод для отправки:
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
    public String postData() {
        // Create a new HttpClient and Post Header
        HttpClient httpclient = new DefaultHttpClient();
        
        HttpPost httppost = new HttpPost("http://www.google.com/script.php");
        
        try {
            // Add your data
            List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
            nameValuePairs.add(new BasicNameValuePair("id", "12345"));
            nameValuePairs.add(new BasicNameValuePair("stringdata", "Hi"));
            httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
            
            // Execute HTTP Post Request
            HttpResponse response = httpclient.execute(httppost);
            String s = response.toString();
            
            return s;
        } catch (ClientProtocolException e) {
            
        } catch (IOException e) {
            // TODO Auto-generated catch block
        }
        return ""; 
    }
Я путями перестановки return выяснил, что проблема в строке:
Java
1
HttpResponse response = httpclient.execute(httppost);
В манифест все добавил:
XML
1
 <uses-permission android:name="android.permission.INTERNET"></uses-permission>
Сами логи:
Код
09-24 15:42:05.836: E/Trace(22919): error opening trace file: No such file or directory (2)
09-24 15:42:05.836: D/ActivityThread(22919): setTargetHeapUtilization:0.25
09-24 15:42:05.836: D/ActivityThread(22919): setTargetHeapIdealFree:8388608
09-24 15:42:05.836: D/ActivityThread(22919): setTargetHeapConcurrentStart:2097152
09-24 15:42:05.936: D/libEGL(22919): loaded /system/lib/egl/libEGL_adreno200.so
09-24 15:42:05.946: D/libEGL(22919): loaded /system/lib/egl/libGLESv1_CM_adreno200.so
09-24 15:42:05.946: D/libEGL(22919): loaded /system/lib/egl/libGLESv2_adreno200.so
09-24 15:42:05.956: I/Adreno200-EGL(22919): <qeglDrvAPI_eglInitialize:269>: EGL 1.4 QUALCOMM build:  (Merge)
09-24 15:42:05.956: I/Adreno200-EGL(22919): Build Date: 01/23/13 Wed
09-24 15:42:05.956: I/Adreno200-EGL(22919): Local Branch: BlueJBUpgrade
09-24 15:42:05.956: I/Adreno200-EGL(22919): Remote Branch: 
09-24 15:42:05.956: I/Adreno200-EGL(22919): Local Patches: 
09-24 15:42:05.956: I/Adreno200-EGL(22919): Reconstruct Branch: 
09-24 15:42:05.976: D/OpenGLRenderer(22919): Enabling debug mode 0
09-24 15:42:10.681: D/AndroidRuntime(22919): Shutting down VM
09-24 15:42:10.681: W/dalvikvm(22919): threadid=1: thread exiting with uncaught exception (group=0x41405450)
09-24 15:42:10.692: E/AndroidRuntime(22919): FATAL EXCEPTION: main
09-24 15:42:10.692: E/AndroidRuntime(22919): android.os.NetworkOnMainThreadException
09-24 15:42:10.692: E/AndroidRuntime(22919): 	at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1126)
09-24 15:42:10.692: E/AndroidRuntime(22919): 	at java.net.InetAddress.lookupHostByName(InetAddress.java:385)
09-24 15:42:10.692: E/AndroidRuntime(22919): 	at java.net.InetAddress.getAllByNameImpl(InetAddress.java:236)
09-24 15:42:10.692: E/AndroidRuntime(22919): 	at java.net.InetAddress.getAllByName(InetAddress.java:214)
09-24 15:42:10.692: E/AndroidRuntime(22919): 	at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:141)
09-24 15:42:10.692: E/AndroidRuntime(22919): 	at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164)
09-24 15:42:10.692: E/AndroidRuntime(22919): 	at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119)
09-24 15:42:10.692: E/AndroidRuntime(22919): 	at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:360)
09-24 15:42:10.692: E/AndroidRuntime(22919): 	at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)
09-24 15:42:10.692: E/AndroidRuntime(22919): 	at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
09-24 15:42:10.692: E/AndroidRuntime(22919): 	at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465)
09-24 15:42:10.692: E/AndroidRuntime(22919): 	at com.example.p0031_fp.MainActivity.postData(MainActivity.java:116)
09-24 15:42:10.692: E/AndroidRuntime(22919): 	at com.example.p0031_fp.MainActivity.onClick(MainActivity.java:71)
09-24 15:42:10.692: E/AndroidRuntime(22919): 	at android.view.View.performClick(View.java:4128)
09-24 15:42:10.692: E/AndroidRuntime(22919): 	at android.view.View$PerformClick.run(View.java:17142)
09-24 15:42:10.692: E/AndroidRuntime(22919): 	at android.os.Handler.handleCallback(Handler.java:615)
09-24 15:42:10.692: E/AndroidRuntime(22919): 	at android.os.Handler.dispatchMessage(Handler.java:92)
09-24 15:42:10.692: E/AndroidRuntime(22919): 	at android.os.Looper.loop(Looper.java:213)
09-24 15:42:10.692: E/AndroidRuntime(22919): 	at android.app.ActivityThread.main(ActivityThread.java:4787)
09-24 15:42:10.692: E/AndroidRuntime(22919): 	at java.lang.reflect.Method.invokeNative(Native Method)
09-24 15:42:10.692: E/AndroidRuntime(22919): 	at java.lang.reflect.Method.invoke(Method.java:511)
09-24 15:42:10.692: E/AndroidRuntime(22919): 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:809)
09-24 15:42:10.692: E/AndroidRuntime(22919): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:576)
09-24 15:42:10.692: E/AndroidRuntime(22919): 	at dalvik.system.NativeStart.main(Native Method)
09-24 15:42:11.883: I/Process(22919): Sending signal. PID: 22919 SIG: 9
Буду очень благодарен за помощь
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.09.2013, 16:47
Я подобрал для вас темы с готовыми решениями и ответами на вопрос HttpClient вылетает на телефоне (Программирование Android):

Приложение вылетает без ошибок(на эмуляторе и на телефоне)
Добрый день! При запуске на эмуляторе или реальном телефоне приложение вылетает...

Не работает HttpClient
Первый раз пробую отправить и получить данные на сервер... Полазил в нете и...

HttpClient.execute
Привет всем, при работе этого кода почему то программа вылетает с ошибкой. ...

Какая есть альтернатива устаревшему apache HttpClient?
С недавнего времени HttpClient от апача устарел и предлагают юзать стандартный...

Отладка на телефоне
ПОйдем по порядку 1) включил на телефоне режим для...

3
chizz
983 / 500 / 101
Регистрация: 19.03.2013
Сообщений: 3,101
Записей в блоге: 19
Завершенные тесты: 1
24.09.2013, 16:50 #2
Цитата Сообщение от Zerony Посмотреть сообщение
http://www.google.com/script.php
Это просто так или ты такой адрес и указываешь?

Добавлено через 1 минуту
Ну и как вариант может не запускаться, потому что в отдельном потоке надо request/response делать. AsyncTask и все такое
0
Zerony
1 / 1 / 1
Регистрация: 31.10.2010
Сообщений: 40
24.09.2013, 17:00  [ТС] #3
Цитата Сообщение от chizz Посмотреть сообщение
Это просто так или ты такой адрес и указываешь?

Добавлено через 1 минуту
Ну и как вариант может не запускаться, потому что в отдельном потоке надо request/response делать. AsyncTask и все такое
Да я пока просто учусь, потому гугл и поставил.

Можно пример, как попробовать?
0
lavan
53 / 53 / 8
Регистрация: 21.03.2009
Сообщений: 371
25.09.2013, 14:29 #4
Цитата Сообщение от Zerony Посмотреть сообщение
09-24 15:42:10.692: E/AndroidRuntime(22919): android.os.NetworkOnMainThreadException
нельзя работать с сетью в главном потоке! самый простой способ исправить
Java
1
2
3
4
5
6
7
8
Runnable r = new Runnable(){
           @Override
           public void run (){
               Connect to...
           }
       };
Thread t = new Thread(r);
r.start();
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.09.2013, 14:29
Привет! Вот еще темы с решениями:

Просмотреть БД в телефоне
Здравствуйте, я написал программу с локальной бд и SharedPreferences, как можно...

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

Запуск приложения на телефоне
Извиняюсь за такой вопрос, но как мне запустить приложение которое я сделал на...

Создание apk на телефоне
Добрый день. Интересует есть ли возможность создания apk файлов прям на...


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

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

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