HttpClient вылетает на телефоне

Ответить
Zerony
Сообщения: 2
Зарегистрирован: 24 сен 2013, 15:58

HttpClient вылетает на телефоне

Сообщение Zerony » 24 сен 2013, 16:04

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

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

Метод для отправки:

Код: Выделить всё

    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(TM) 2 Platform Standard Edition 5.0

Код: Выделить всё

HttpResponse response = httpclient.execute(httppost);
В манифест все добавил:
Код XML

Код: Выделить всё

 <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

Буду очень благодарен за помощь

Mykola
Сообщения: 132
Зарегистрирован: 26 июл 2013, 12:06

Re: HttpClient вылетает на телефоне

Сообщение Mykola » 24 сен 2013, 16:38

android.os.NetworkOnMainThreadException
Б**я когда вы уже логи читать научитесь.

Zerony
Сообщения: 2
Зарегистрирован: 24 сен 2013, 15:58

Re: HttpClient вылетает на телефоне

Сообщение Zerony » 24 сен 2013, 16:44

Mykola писал(а):android.os.NetworkOnMainThreadException
Б**я когда вы уже логи читать научитесь.
Интернет подключен, как сделать чтоб эта ошибка не появлялась?

Mykola
Сообщения: 132
Зарегистрирован: 26 июл 2013, 12:06

Re: HttpClient вылетает на телефоне

Сообщение Mykola » 24 сен 2013, 17:30

Нельзя работать с HttpClient httpclient = new DefaultHttpClient(); в основном потоке. Гугл в помощь(((

Ответить