Я просматриваю 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
Как получить вызов client.get() из HttpClient, работающего в студии Android? ⇐ Android
Форум для тех, кто программирует под Android
1730547253
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)
}
}
}
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79148990/how-to-get-a-client-get-call-from-a-httpclient-working-on-android-studio[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия