ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [안드로이드]networkonmainthreadexception 오류
    카테고리 없음 2020. 9. 24. 18:41

    알면 별거 아닌데, 몇일 동안 끙끙 구굴링, 삽질하다가 찾아 냈다..

     

    networkonmainthreadexception 오류는 프로그램 정책을 바꾸면 된다.

     

    public class MainActivity extends AppCompatActivity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
            StrictMode.setThreadPolicy(policy);
            
            .........
    	}
    }

     

    package com.example.myapplication;
    
    import android.net.Uri;
    import android.os.Bundle;
    import android.os.StrictMode;
    import android.widget.TextView;
    
    import androidx.appcompat.app.AppCompatActivity;
    
    import java.io.BufferedReader;
    import java.io.BufferedWriter;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.io.OutputStream;
    import java.io.OutputStreamWriter;
    import java.net.HttpURLConnection;
    import java.net.MalformedURLException;
    import java.net.URL;
    
    public class MainActivity extends AppCompatActivity {
        private static final String TAG = null ;
        HttpURLConnection conn;
        URL url = null;
        //
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
            StrictMode.setThreadPolicy(policy);
    
    
            TextView textview = (TextView)findViewById(R.id.textview);
    
            try {
    
                // Enter URL address where your php file resides
                url = new URL("http://192.168.168.227/b.php");
                textview.setText(url + "성공......");
            } catch (MalformedURLException e) {
                // TODO Auto-generated catch block
                textview.setText(e.toString());
                e.printStackTrace();
            }
    
    
            try {
                // Setup HttpURLConnection class to send and receive data from php and mysql
                conn = (HttpURLConnection)url.openConnection();
                //conn.setReadTimeout(READ_TIMEOUT);
                //conn.setConnectTimeout(CONNECTION_TIMEOUT);
                conn.setRequestMethod("POST");
    
                // setDoInput and setDoOutput method depict handling of both send and receive
                conn.setDoInput(true);
                conn.setDoOutput(true);
    
                // Append parameters to URL
                String[] params = new String[5];
    
                params[0] = "홍길동";
                params[1] = "1234";
    
                Uri.Builder builder = new Uri.Builder()
                        .appendQueryParameter("name", params[0])
                        .appendQueryParameter("pwd", params[1]);
    
                String query = builder.build().getEncodedQuery();
    
                textview.setText("파라메터 : " + query);
    
                try {
                    // Open connection for sending data
                    OutputStream os = conn.getOutputStream();
                    BufferedWriter writer = new BufferedWriter(
                            new OutputStreamWriter(os, "UTF-8"));
    
                    writer.write(query);
                    writer.flush();
                    writer.close();
                    os.close();
    
                    if (conn.getResponseCode() == HttpURLConnection.HTTP_OK) {
                        textview.setText("성공.....");
    
                        BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream(), "UTF-8"));
                        String line;
                        String page = "";
    
                        // 라인을 받아와 합친다.
                        while ((line = reader.readLine()) != null){
                            page += line;
                        }
                        textview.setText(page);
    
                    }
                    else {
    
                        textview.setText("실패....");
                    }
    
                    conn.connect();
    
                } catch (Exception e) {
                    textview.setText(e.toString());
                }
    
    
            } catch (IOException e1) {
                // TODO Auto-generated catch block
                textview.setText(e1.toString());
    
                e1.printStackTrace();
            }
    
        }
    }
Designed by Tistory.