728x90
앱_서버 백엔드 사용을 위한 설정
🟩 이클립스 설정
- 서버 프로그램 구현을 위해 사용할 이클립스 기본 설정을 수행
- Apache Tomcat 9.0 서버와의 연동 설정 수행
- 프로젝트 생성하고 실행 테스트를 수행
🟩 OkHttp 라이브러리
- REST API, HTTP 통신을 간편하게 구현할 수 있도록 다양하고 매우 간단하게 서버와 통신을 가능하도록 제공하는 라이브러리
- https://square.github.io/okhttp/
➡️ OkHttp 라이브러리를 앱 프로젝트에 적용하기
- module 수준의 gradle 파일에 라이브러리 의존성 추가
implementation("com.squareup.okhttp3:okhttp:4.10.0")
- manifests/AndroidManifest.xml 파일 속에
- - 1) 통신하고자 하는 프로토콜이 Http 이기 때문에 접근 보안을 풀어주기 위한 설정 추가로 필요
android:usesCleartextTraffic="true">
- 2) ‘네트워크 권한’ 추가
<uses-permission android:name="android.permission.INTERNET
📍AndroidManifest.xml 파일 전체 내용물
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.okhttpapp">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.OkHttpApp"
android:usesCleartextTraffic="true">
<activity
android:name=".MainActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
<uses-permission android:name="android.permission.INTERNET"/>
</manifest>
- MainActivity.kt
-1) 네트워크 관련 처리는 반드시 스레드를 발생시켜야 한다.
class MainActivity : AppCompatActivity() {
//뷰 바인딩 설정
lateinit var mainActivityBinding : ActivityMainBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
//inflate()로 바인딩 객체 불러오기
mainActivityBinding = ActivityMainBinding.inflate(layoutInflater)
setContentView(mainActivityBinding.root)
//뷰 속 버튼 이벤트 처리
mainActivityBinding.connectBtn.setOnClickListener {
//네트워크 관련 처리 시 스레드 발생시켜야 함
thread {
//연결할 (서버 위에 올려놨던) jsp 의 주소를 사용
// 단, 주소 속 localhost 대신에 본인 컴퓨터의 ip 주소를 넣어야 함
val site = "http://172.30.1.16: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
}
}
}
}
}
}
-2) 연결할 jsp 사이트(서버 올린) 링크 속 localhost → 자기 PC의 ip 주소로 대체할 것
//연결할 (서버 위에 올려놨던) jsp 의 주소를 사용
// 단, 주소 속 localhost 대신에 본인 컴퓨터의 ip 주소를 넣어야 함
val site = "http://172.30.1.16:8080/App3_CommunityServer/test.jsp"
📌 본인 PC IP 주소 확인하는 방법
- cmd 창에서 ipconfig 명령어 입력
- 만약 이 명령어 인식 못할 때는 ‘고급 시스템 설정’ 에서 다음의 환경 변수 추가한다.
- PATH 변수에 다음을 추가
C:\WINDOWS\system32
➡️ 이클립스에서 서버 위에 올린 jsp 파일 속 내용은 다음과 같다.
➡️ 서버로부터 성공적으로 받은 데이터를 앱으로 받기.
728x90
'App(앱)_관련 공부 모음 > [강의] Android_App Project' 카테고리의 다른 글
# PRJ_3. 커뮤니티 게시판 앱_(2) 회원가입, 닉네임 설정 화면 (0) | 2022.07.27 |
---|---|
# PRJ_3. 커뮤니티 게시판 앱_(1) 로그인 화면 (0) | 2022.07.27 |
앱_MySQL DB 생성 (0) | 2022.07.18 |
안드로이드 앱_서버 프로그래밍 (0) | 2022.07.18 |
# PRJ_2. LBS 위치기반 서비스 앱 (0) | 2022.07.13 |