2017-09-12 5 views
4

나는 완전히 Kotlin에 익숙하다. POST 메서드를 사용하여 로그인 유효성 검사를 수행하고 GET 메서드를 사용하여 정보를 얻고 싶습니다. 이전 프로젝트의 URL, 서버 사용자 이름 및 암호가 있습니다. 이 것을 사용하는 적절한 예제 프로젝트를 찾지 못했습니다. 누구든지 HTTP 요청에서 GET 및 POST 메서드를 사용할 수있는 실제 예제를 제안하십시오.Kotlin의 HTTP 요청

+1

Java 사용 경험이 있습니까? Java로 어떻게합니까? Kotlin에 동일한 라이브러리를 적용하면 첫 번째 접근 방식이됩니다. – s1m0nw1

+0

[** Retrofit **] (https://antonioleiva.com/retrofit-android-kotlin/)를 사용해 보셨습니까? 업그레이드 버전 [** 여기 **] (http://square.github.io/retrofit/) – EpicPandaForce

답변

4

Java에서 사용할 표준 라이브러리를 사용할 수 있습니다. 예를 HttpURLConnection를 들어 :

private fun sendGet() { 
    val url = "http://www.google.com/" 
    val obj = URL(url) 

    with(obj.openConnection() as HttpURLConnection) { 
     // optional default is GET 
     requestMethod = "GET" 


     println("\nSending 'GET' request to URL : $url") 
     println("Response Code : $responseCode") 

     BufferedReader(InputStreamReader(inputStream)).use { 
      val response = StringBuffer() 

      var inputLine = it.readLine() 
      while (inputLine != null) { 
       inputLine = it.readLine() 
       response.append(inputLine) 
      } 
      println(response.toString()) 
     } 
    } 
} 

은 당신이 서버에 간단한 HTTP 요청을 보낼 수있는 방법입니다. 나는 아파치 HttpComponents 또는 복잡한 작업에 관해서 사용하고자하는 프레임 워크를 제안 할 것이다. Android의 경우 Volley은 시작하기위한 장소입니다.

+2

일부 Android 구성 요소는 Java Android에서 사용되지 않는 것으로 표시되어 있으므로 [Volley 라이브러리] (https : //developer.android.com/training/volley/index.html) – Thecave3

+0

좋아요, 안드로이드 태그를 보지 못했습니다. 질문은 여기에서 Kotlin을 언급했습니다 – s1m0nw1

+0

kotlin이 Android 밖에 사용될 수 있는지, 하지만 안드로이드의 아파치가 제대로 작동하지 않는다는 것을 알고 있습니다. – Thecave3

0
import java.io.IOException 
import java.net.URL 

fun main(vararg args: String) { 
    val response = try { 
     URL("http://seznam.cz") 
       .openStream() 
       .bufferedReader() 
       .use { it.readText() } 
    } catch (e: IOException) { 
     "Error with ${e.message}." 
    } 
    println(response) 
} 
+1

나는'E/AndroidRuntime : FATAL EXCEPTION : main에있는 android.os.StrictMode $ AndroidBlockGuardPolicy.onNetwork (StrictMode.java:1287)' 으로 인해 https://stackoverflow.com/questions/22395417/error를 보았습니다. -strictmodeandroidblockguardpolicy-onnetwork와 그것이 작동했습니다. – efwjames