# PRJ_3. 커뮤니티 게시판 앱_(11) Eclipse와 OkHttp라이브러리

728x90

🟦 45강. 이클립스 설정

▶️ 이클립스 설정

  • 서버 프로그램 구현을 위해 사용할 Eclipse 기본 설정 수행
  • Apache-Tomcat 서버와의 연동 설정을 수행
  • 프로젝트를 생성하고 실행 테스트를 수행

🟦 46강. OkHttp 라이브러리 사용

▶️ OkHttp 라이브러리

  • REST API, HTTP 통신을 간편하게 구현할 수 있도록 다양한 기능 제공하는 라이브러리

🟧 사용을 위한 세팅

1) 뷰 바인딩 설정

  • Module 수준의 build.gradle 파일에 viewBinding 설정 true 준다.
buildFeatures{
viewBinding = true
}

2) OkHttp라이브러리 사용을 위해 dependencies에 의존 추가한다.

implementation 'com.squareup.okhttp3:okhttp:4.9.0'

3) 네트워크 사용을 위해 ‘인터넷 권한’을 추가한다.

◾ AndroidManifest.xml

<uses-permission android:name = "android.permission.INTERNET"/>

4) AndroidManifest.xml 에 다음을 추가

  • Http 사용 시, 보안 문제 때문에 다음을 추가한다.

android:usesCleartextTraffic="true"

5) 네트워크 관련 처리는 반드시 ‘쓰레드’로 동작 처리 필수

◾ MainActivity.kt

package com.example.okhttpapplication

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import com.example.okhttpapplication.databinding.ActivityMainBinding
import okhttp3.OkHttpClient
import okhttp3.Request
import kotlin.concurrent.thread

class MainActivity : AppCompatActivity() { //'메인' 액티비티

    //뷰 바인딩 설정
    lateinit var mainActivityBinding : ActivityMainBinding

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        //뷰 바인딩 설정
        mainActivityBinding = ActivityMainBinding.inflate(layoutInflater)
        setContentView(mainActivityBinding.root)
        //버튼 이벤트 처리
        mainActivityBinding.connectBtn.setOnClickListener{
thread{//쓰레드로 동작해야 네트워크 관련 처리 가능
               //localhost 부분에 서버 Ip 주소 담기
               val site = "http://172.30.1.9:8080/App3_CommunityServer/test.jsp"

               //okHttp 객체
               val client = OkHttpClient()

               val request = Request.Builder().url(site).get().build()
               val response = client.newCall(request).execute() //접속됨

               // 만약 서버와 통신 성공 시
               if(response.isSuccessful == true) {
                   val result = response.body?.string() //서버로부터 받은 데이터를 받아올 수 있다.
                   runOnUiThread{
mainActivityBinding.resultText.text= result
}
}
}
        }
}
}

→ 여기서 서버 연동할 site 주소 속 localhost는 자신의 컴퓨터 ip 주소로 대체해야 한다.

→ 명령 프롬포트에서 ipconfig 명령어 입력 시 등장하는 ip 주소 가져올 것

🟧 최종 모습

1) 서버 위에 올라간 test.jsp 파일 속 내용물

2) 위 url 주소에 ip주소 혼합시켜서 ‘안드로이드 앱’에 데이터 가져옴

  • 사용자가 버튼 클릭 시, 가져올 수 있도록 이벤트 처리되어 있다.

728x90