Size: a a a

Kotlin Community

2020 September 09

VP

Vladimir Petrakovich in Kotlin Community
Ayrat Hudaygulov
И вот вопрос как уведомить клиента что ему прилетели не полные данные в случае ошибки. Пока что на ум приходит только алёрт на почту, которую читать из хедеров -_-
Сервер в идеале должен это показать недвусмысленно. Но делает ли так каждый ktor'овский engine, не  уверен.
источник

AH

Ayrat Hudaygulov in Kotlin Community
Vladimir Petrakovich
Ну так тоже норм, для этого transfer-encoding: chunked и существует)
ну я так и получаю же, оно кусками летает, в памяти не более 2х страниц из БД, и стримится
источник

AH

Ayrat Hudaygulov in Kotlin Community
Но вот пока что получается что на ошибке получения данных ктор уверенно отвечает 200 и… всё)))
источник

с#

саша сок #KotlinGang... in Kotlin Community
чем project(...) от api(...) отличается ?
источник

WD

WhoLetThe DogsOut in Kotlin Community
саша сок #KotlinGang
чем project(...) от api(...) отличается ?
Речь про гредл?
источник

с#

саша сок #KotlinGang... in Kotlin Community
+
источник

VP

Vladimir Petrakovich in Kotlin Community
Ayrat Hudaygulov
Но вот пока что получается что на ошибке получения данных ктор уверенно отвечает 200 и… всё)))
Судя по исходникам respondOutputStream(), об этом случае не особо думали. Но там есть ByteWriteChannel c close(cause: Throwable?), который возможно всё-таки делает именно то, что нужно.
источник

AH

Ayrat Hudaygulov in Kotlin Community
Vladimir Petrakovich
Судя по исходникам respondOutputStream(), об этом случае не особо думали. Но там есть ByteWriteChannel c close(cause: Throwable?), который возможно всё-таки делает именно то, что нужно.
спасибо, надо завести ишую, а там ответят может
источник

VP

Vladimir Petrakovich in Kotlin Community
Ayrat Hudaygulov
спасибо, надо завести ишую, а там ответят может
Можно сделать так:
https://pastebin.com/6vHDQt35
curl точно говорит, что тело ответа оборвалось (проверял на Netty)
источник

AH

Ayrat Hudaygulov in Kotlin Community
немедленно попробую!
источник

AH

Ayrat Hudaygulov in Kotlin Community
попробовал. моя курла не видит разницы 🙂
я правда писал втупую - curl url
источник

VP

Vladimir Petrakovich in Kotlin Community
Ayrat Hudaygulov
попробовал. моя курла не видит разницы 🙂
я правда писал втупую - curl url
Ну я так же. Очень редко он ничего не выводит, но обычно
curl: (18) transfer closed with outstanding read data remaining

или
curl: (52) Empty reply from server

А у вас какой engine?
источник

AH

Ayrat Hudaygulov in Kotlin Community
Vladimir Petrakovich
Ну я так же. Очень редко он ничего не выводит, но обычно
curl: (18) transfer closed with outstanding read data remaining

или
curl: (52) Empty reply from server

А у вас какой engine?
вот бы узнать!
brew install curl 😄
источник

VP

Vladimir Petrakovich in Kotlin Community
Ayrat Hudaygulov
вот бы узнать!
brew install curl 😄
Я про ApplicationEngine в Ktor'е
источник

AH

Ayrat Hudaygulov in Kotlin Community
ааааа, Netty, да)
источник

VP

Vladimir Petrakovich in Kotlin Community
Тогда странно 🤔
источник

AH

Ayrat Hudaygulov in Kotlin Community
Да, согласный. Ладно, всё равно ишую писать
источник

VP

Vladimir Petrakovich in Kotlin Community
Да, это выглядит как недоработка, на которой очень легко подорваться
источник

VP

Vladimir Petrakovich in Kotlin Community
Ayrat Hudaygulov
Да, согласный. Ладно, всё равно ишую писать
Важный момент: у меня Ktor 1.3.0
источник

AH

Ayrat Hudaygulov in Kotlin Community
да, похоже. у меня 1.3.2
источник