Как получить вызов client.get() из HttpClient, работающего в студии Android?Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Как получить вызов client.get() из HttpClient, работающего в студии Android?

Сообщение Anonymous »

Я просматриваю ktor.io/docs о том, как создать и настроить клиент ktor для выполнения запроса на получение, и не знаю, в чем дело.

Я выполнил импорт на MainActivity.kt и зависимости в файле build.gradle, я искал ответы.
class Greeting {
private val client = HttpClient(CIO) {

install(HttpTimeout) {
connectTimeoutMillis = 8000
requestTimeoutMillis = 14000
}

install(Logging) {
logger = Logger.SIMPLE
level = LogLevel.ALL
// filter { request ->
// request.url.host.contains("ktor.io")
// }
// sanitizeHeader { header -> header == HttpHeaders.Authorization }
}
// expectSuccess = true
}

suspend fun greeting(): String {

val httpResponse: HttpResponse = client.get("https://ktor.io/docs/welcome.html")
println("get done")

// val httpResponse: HttpResponse = client.request("https://ktor.io") {
// method = HttpMethod.Get
// }

if (httpResponse.status.value in 200..299) {
println("Successful response!")
}
return "done"
}
}

Функция зависает в
val httpResponse: HttpResponse = client.get("https://ktor.io/docs/welcome.html")
Он получил ответ от сервера два раза. Я не получил ответ более 14 раз.

Я пробовал разные сайты, подтвердил, что есть подключение к Интернету, проверил DNS, чтобы проверить DNS.
Отладка показывает следующее:
Журналы — Logcat

Приветственный вызов в MainActivity,
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
enableEdgeToEdge()
setContent {
Test2Theme {
Surface(
modifier = Modifier.fillMaxSize(),
color = MaterialTheme.colorScheme.background
) {
val scope = rememberCoroutineScope()
Spacer(modifier = Modifier.padding(20.dp))

if(isNetworkAvailable(this))
Text("yes")
else
Text("no")

var text by remember { mutableStateOf("Loading") }
LaunchedEffect(true) {
scope.launch {
text = try {
Greeting().greeting()
} catch (e: Exception) {
e.localizedMessage ?: "error"
}
}
}
// GreetingView(text)
}
}
}
}
}


Подробнее здесь: https://stackoverflow.com/questions/791 ... oid-studio
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»