on
[flask app 통신] Android Studio를 통한 https 요청
[flask app 통신] Android Studio를 통한 https 요청
Android Studio의 httpsHttpURLConnection를 사용하여 배포된 url과 통신을 해보겠습니다.
우선 인터넷을 사용할 수 있게 하기 위해서 AndroidManifest.xml에 위의 코드를 추가해줍니다.
private var output: StringBuilder = StringBuilder()
httpsHttpURLConnection을 통해 읽어오는 값을 저장하는 output을 선언해줍니다.
override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val editText = findViewById(R.id.editText) val textView = findViewById(R.id.textView) val button = findViewById(R.id.button) button.setOnClickListener { val urlStr = editText.text.toString() thread(start = true) { request(urlStr) } textView.text = output } }
activity_main.xml에 만들어두었던 editText, textView, button을 가져옵니다. 그리고 button이 눌렸을 때 실행시킬 코드를 작성해줍니다. 버튼이 눌렸을 때 editText에 있는 값을 문자로 만들어 urlStr에 저장해주고, thread를 사용하여 request 함수에 urlStr을 매개변수로 넘겨줍니다.
private fun request(urlStr:String){ try { val url = URL(urlStr) val conn: HttpURLConnection = url.openConnection() as HttpURLConnection if (conn != null) { conn.connectTimeout = 10000 conn.requestMethod = "GET" conn.doInput = true val resCode = conn.responseCode val reader: BufferedReader = BufferedReader(InputStreamReader(conn.inputStream)) var line: String? = null while(true) { line = reader.readLine() if(line == null) { break } output.append(line + "
") } reader.close() conn.disconnect() } } catch (ex:Exception) { println("예외 발생함:" + ex.toString()) } println("응답=>" + output.toString()) }
from http://hangjastar.tistory.com/173 by ccl(A) rewrite - 2021-03-18 18:00:13