마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

안드로이드 http 통신 419 반환에 대해 아시는 분 계신가요?

0 추천

구글링해보니 419 반환에 대해서는 따로 정보가 없더군요

public class MembershipAcitivity extends AppCompatActivity {

    private static String IP = "http://****";

    private EditText edit_name;
    private EditText edit_email;
    private EditText edit_password;
    private Button btn_signUp;
    private TextView txtV_show;

    @Override
    protected void onCreate(Bundle saveInstanceState){
        super.onCreate(saveInstanceState);
        setContentView(R.layout.activity_membership_acitivity);

        edit_name = findViewById(R.id.edit_Member_Name);
        edit_email = findViewById(R.id.edit_Member_Email);
        edit_password = findViewById(R.id.edit_Member_PW);

        txtV_show = findViewById(R.id.txtV_Member_show);

        btn_signUp = findViewById(R.id.btn_Member_Membership);

        btn_signUp.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                String query = edit_name.getText().toString();

                InsertData task = new InsertData();
                task.execute(IP, query);
            }
        });
    }
    class InsertData extends AsyncTask<String, Void, String>{

        @Override
        protected String doInBackground(String... params){
            String serverURL = params[0];
            String query = params[1];

            String postParameters = "query" + query;

            try{
                URL url = new URL(serverURL);
                HttpURLConnection conn = (HttpURLConnection) url.openConnection();

                conn.setRequestMethod("POST");
                conn.setDoOutput(true);
                conn.setDoInput(true);
                conn.connect();

                OutputStream os = conn.getOutputStream();
                os.write(postParameters.getBytes("UTF-8"));
                os.flush();
                os.close();

                int rsCode = conn.getResponseCode();
                Log.d("test","응답 : " + rsCode);

                InputStream is;
                if(rsCode == conn.HTTP_OK){
                    is = conn.getInputStream();
                }
                else{
                    is = conn.getErrorStream();
                }

                InputStreamReader isr = new InputStreamReader(is, "UTF-8");
                BufferedReader br = new BufferedReader(isr);

                StringBuilder sb = new StringBuilder();
                String line = null;

                while((line = br.readLine())!= null){
                    sb.append(line);
                }
                br.close();

                return sb.toString();
            }
            catch (Exception e)
            {
                Log.d("test", "error : ",e);

                return new String("Error: " +e.getMessage());
            }
        }
    }
}

 

첫 오류는 InsertData 에 excute 해줄 때 IP + query 로 보내서 params 값없다고 에러 떳었고

 

두번 째는  아래 부분에 return sb.toString 부분에

txtV_show.setText(sb.toString) 으로 에러 났었네요

run안에 집어넣으라는 오류같더군요

 

그걸 다잡고 마지막으로 보내는데 따로 에러는 없지만 응답이 알 수 없는 응답이 와버리니..

조언부탁드립니다

 

php 코드쪽은 위 지정한 주소로 변수이름 query로 query 문장을 보내면 값을 반환한다고 하더군요

 

뭐가 문제일까요

zkzkzhzj (1,670 포인트) 님이 2019년 4월 6일 질문

1개의 답변

+1 추천
 
채택된 답변
419는  Authentication Timeout 의미합니다.

연동 이슈라.. 단말만으로는 알기가 쉽지 않기 때문에 서버쪽에 문의 하시는게 정확할듯 합니다.

단지   올려주신 코드를 기준으론
POST 전송시 CSRF 토큰이 없어서 POST 전송 완료를 서버에서 인지 못 해 발생하는 것으로 생각됩니다.

postParameters 뒤에  "\r\n" 을 추가로 붙여서 전송해 보세요.
익명사용자 님이 2019년 4월 8일 답변
zkzkzhzj님이 2019년 4월 8일 채택됨
...