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

안녕하세요 이제 막 안드로이드 스튜디오를 시작한 학생입니다 DB서버에 JSON 형식으로 데이터를 POST 하고 싶은데 어떻게 하는지 모르겠어요ㅜㅜ

0 추천
public class Register extends AppCompatActivity {

    private Button button4;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_register);

        button4 = findViewById(R.id.button4);
        button4.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(Register.this , MainActivity.class);
                startActivity(intent);

            }
        });
    }
}
 
여기서 어디에 json 데이터를 집어넣어야하고 어디에다가 json 데이터 전송을 선언해야하는지 하나도 모르겠어요.. php 기능은 안쓴다고 하셔서..
dw6921 (140 포인트) 님이 2020년 11월 13일 질문
질문이 너무 막연하네요.  JSON을 사용하다는 것 이외에는 API에 대한 어떤 정보도 없네요. 그리고 DB서버가 아니라 API 서버 또는 웹서버가 맞을 겁니다. 서버가 어떤 식으로 데이터를 받는지에 따라 답도 달라집니다.
그냥 보통의 REST API를 말씀하시는 거면 http connection을 맺은 다음, request body에 json string를 설정한 다음 http post 메소드로 보내면 되는데, 서버에서 엑세스 토큰을 체크한다면 이걸 서버에 원하는 형태대로 헤더나 이런 곳에 설정해 주어야 하구요. 기본 인증을 하면 상용자 ID나 비번을 요청에 딸려 보내야 하구요. 만약 서버가 https만 지원한다면 http 대신에 https 커넥션을 쓰셔야 합니다.
코드상으로는 thread + httpurlconnction을 이용할 수 도 있고 Volley나 OkHttp 같은 라이브러리를 이용할 수도 있고 코드량을 더 줄이기 위해서 Retrofit 도 많이 사용하구요. 이런 네트워킹 작업은 UI를 그리는 메인쓰레드에서 하면 안되고 백그라운드 쓰레드에서 비동기적으로 처리해야 하므로 이런 작업을 지원할 수 있도록 Volley나 Okttp, Retrofit을 사용한다면 콜백을 사용하여 처리해야 하고 RxJava나 Kotlin Coroutines를 사용한다면 좀 더 추가적인 작업이 필요합니다.
자바를 사용하신다면 권장하고 싶은 방법은 OkHtttp + Retrofit + Callback이나 OkHttp + Retrofit + RxJava를 사용하는 겁니다.
님이 필요한 옵션이 어떤 것인지 모르겠지만, 이런 종류의 예제는 구글을 찾아보면 셀 수 없이 많습니다. GitHub같은 데는 온전한 예제들도 엄청나게 많이 존재하구요. 직접 코드를 보여드리는 것보다는 필요한 것이 무엇인지 확인하신 다음 이미 공개되어 있는 코드를 이해하신 다음 가져다 쓰시는게 제일 좋다고 봅니다. 안드로이드 개발자 사이트를 검색하셔도 예제가 아주 많습니다.

답변 달기

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