Size: a a a

2019 May 08

В

Вафель in Kotlin JVM
Алексей Овсянников
Ну, скорее всего, проблема в какой-то магии автопрмведения типов. А тут есть один простой совет - если не понимаете, как работает - не используйте:)
Ну в этом конкретном случае смысл был в том, что я в body неправильно форм дату пихал.

Ну и да, сейчас уже думаю отказаться от HttpClientFeature и встроенного десериализатора, это прикольно, но только всё ломает.

Всплывает много багов из-за динамической типизации (между этапами pipeline передаётся Any)

И из-за всякой 'магии' сложно найти что реально происходит (по стэкстрейсу) :\
источник
2019 May 14

А

Андрей in Kotlin JVM
А подскажите пожалуйста, можно ли в кторе сделать обработчик для всех необработанных запросов? Как это сделать?
источник

AS

Andrey Sidorenko in Kotlin JVM
1. Через intercept (ApplicationCallPipeline.Call) не работает?

2. Сделать хендлер для ошибок и ловить 404
источник

VP

Vladimir Petrakovich in Kotlin JVM
Андрей
А подскажите пожалуйста, можно ли в кторе сделать обработчик для всех необработанных запросов? Как это сделать?
Да, через перехват ApplicationCallPipeline на стадии Fallback.
Подробнее смотрите в исходниках фичи StatusPages.
источник
2019 May 15

В

Вафель in Kotlin JVM
В ktor можно как-то повесить кастомный timeout на запрос?
источник

В

Вафель in Kotlin JVM
А то иначе получается что мне надо на каждый таймаут заводить по новому клиенту...
источник

AO

Alexey Otts in Kotlin JVM
можно повесить таймаут на корутину
источник

В

Вафель in Kotlin JVM
Зачем мне тамаут на корутину, если мне не хватает таймаута ктора?

long polling просто валится с kotlinx.coroutines.TimeoutCancellationException
источник

В

Вафель in Kotlin JVM
Я конечно могу менять таймаут клиента, но это выглядит просто ужасно:

(client.engineConfig as CIOEngineConfig).requestTimeout = 2
источник

AO

Alexey Otts in Kotlin JVM
ну long polling это скорее исключение и можно сделать отдельный клиент
источник

VP

Vladimir Petrakovich in Kotlin JVM
Вафель
Я конечно могу менять таймаут клиента, но это выглядит просто ужасно:

(client.engineConfig as CIOEngineConfig).requestTimeout = 2
Выглядит как недоработка, которую прикроют. Менять конфигурацию на ходу - это как-то не очень.
источник

В

Вафель in Kotlin JVM
Vladimir Petrakovich
Выглядит как недоработка, которую прикроют. Менять конфигурацию на ходу - это как-то не очень.
Да понятно что не очень, но пока не особо вижу других вариантов :\

Либо прибивать гвоздями таймаут, либо совсем костылить меняя на ходу.

Открыл ишью, посмотрим что ответят
источник

BV

Boris Vanin in Kotlin JVM
Vladimir Petrakovich
Выглядит как недоработка, которую прикроют. Менять конфигурацию на ходу - это как-то не очень.
Расскажи это клаудконфигам
источник

AM

Andrew Mikhaylov in Kotlin JVM
Вафель
Да понятно что не очень, но пока не особо вижу других вариантов :\

Либо прибивать гвоздями таймаут, либо совсем костылить меняя на ходу.

Открыл ишью, посмотрим что ответят
Ишью -- самое правильное решение.
источник

В

Вафель in Kotlin JVM
ну вот и я так подумал
источник

VP

Vladimir Petrakovich in Kotlin JVM
Boris Vanin
Расскажи это клаудконфигам
Ну одно дело когда это предусмотрено, и другое - когда нет. Здесь, я уверен, второй случай.
источник

BV

Boris Vanin in Kotlin JVM
Vladimir Petrakovich
Ну одно дело когда это предусмотрено, и другое - когда нет. Здесь, я уверен, второй случай.
Согласен, да
источник

AO

Alexey Otts in Kotlin JVM
А с Attributes там случаем нет костыля какого?
источник

AO

Alexey Otts in Kotlin JVM
источник

AO

Alexey Otts in Kotlin JVM
Самый простой вариант сейчас - это в конфиге выставить таймаут = 0, и в каждом нужном запросе рулить таймаутом корутины
источник