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

안드로이드 JSP통신 질문있습니다.

0 추천

안드로이드와 웹(JSP) 통신을 하려고 합니다.  인터넷에 돌아다니는거 짜집기를 했는데요;;

안드로이드 쪽에서는 postURL토스트를 띄워서 확인해보면 연결완료와 getApplicationContentext()를 띄워보면 데이터 전송 토스트가 뜨는걸보면 안드로이드 쪽에서는 이상없이 잘 보내지는 것같은데 JSP 쪽에서 못받는건지 톰캣으로 돌려서 System.out.println을찍어 콘솔로 확인해보면null값만 찍히고 있네요...톰캣실행시켜서 안드로이드에서 보내기 버튼을 누르고 웹상에서 갱신 이렇게 하는게 맞을까요? 혹시 어디가 문제인지 알려주시면 감사하겠습니다.

안드로이드 소스
public class MainActivity extends ActionBarActivity {
    Button btn_success, btn_back;
    EditText id_user,pw_user, pw2_user, name_user, phone_user, addr_user;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        //requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.activity_main);

        btn_success = (Button)findViewById(R.id.success_btn);
        btn_back = (Button)findViewById(R.id.back_btn);
;
        id_user = (EditText)findViewById(R.id.user_id);
        pw_user = (EditText)findViewById(R.id.user_pw);
        pw2_user = (EditText)findViewById(R.id.user_pw2);
        name_user = (EditText)findViewById(R.id.user_name);
        phone_user = (EditText)findViewById(R.id.user_phone);
        addr_user = (EditText)findViewById(R.id.user_addr);

        btn_back.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast.makeText(MainActivity.this,"돌아가기버튼",Toast.LENGTH_SHORT);
                finish();
            }
        });

        btn_success.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                write();

            }
        });
    }
    private void write(){
            try {
            HttpClient client = new DefaultHttpClient();

            String postURL = "http://192.168.0.52:8080/JSONServer.jsp"; //컴퓨터 IP
            HttpPost post = new HttpPost(postURL);
            System.out.println(postURL);
            Toast.makeText(getApplicationContext(), "연결완료", Toast.LENGTH_LONG).show();

            ArrayList<NameValuePair> params = new ArrayList<NameValuePair>();
            params.add(new BasicNameValuePair("dbid", id_user.getText().toString()));
            params.add(new BasicNameValuePair("dbpw", pw_user.getText().toString()));
            params.add(new BasicNameValuePair("dbpw2", pw2_user.getText().toString()));
            params.add(new BasicNameValuePair("dbname", name_user.getText().toString()));
            params.add(new BasicNameValuePair("dbphone", phone_user.getText().toString()));
            params.add(new BasicNameValuePair("dbaddr", addr_user.getText().toString()));
            System.out.println(id_user);
            Toast.makeText(getApplicationContext(), "데이터전송", Toast.LENGTH_LONG).show();

 

            UrlEncodedFormEntity ent = new UrlEncodedFormEntity(params, HTTP.UTF_8);
            post.setEntity(ent);
            HttpResponse responsePost = client.execute(post);
            HttpEntity reEntity = responsePost.getEntity();
            Toast.makeText(getApplicationContext(), "완료", Toast.LENGTH_LONG).show();

            if (reEntity != null) {
                Log.w("RESPONSE", EntityUtils.toString(reEntity));
            }

        } catch (Exception e) {

        }

    }
}
 

JSP소스

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%

 String id = request.getParameter("dbid");
 System.out.println(id);
 String pw = request.getParameter("dbpw");
 System.out.println(pw);
 String name = request.getParameter("dbname");
 System.out.println(name);
 String phone = request.getParameter("dbphone");
 System.out.println(phone);
 String addr = request.getParameter("dbaddr");
 System.out.println(addr);
 
 %>

와따라나베 (120 포인트) 님이 2015년 12월 24일 질문
저도 요즘 jsp공부 하고있는데 서버 아이피가 192.168이면 사설아이피라 3g로 안드로이드와 통신이 안되는거같더라고요. wifi로만 가능한거같은데 그 부분도 함 보셔요..

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...