Функция expectBytes
требует, чтобы вы указали байтовый декодер, что полезно, если вы сразу хотите преобразовать байты во что-то более значимое в вашем коде.
Если, однако, вы хотите сохранить raw Bytes
в вашем приложении без необходимости клонировать или иным образом читать байты в настоящее время, вы можете найти expectBytesResponse
более полезным. Он имеет подпись:
expectBytesResponse : (Result x a -> msg) -> (Response Bytes -> Result x a) -> Expect msg
Это не принимает декодер в качестве ввода. Он принимает две функции, которые позволяют вам преобразовать Response Bytes
в Result
, и другую функцию (первый аргумент), которая позволяет вам преобразовать Result
в Msg
. На каждом из этих этапов вы можете сохранить исходную ссылку Bytes
, чтобы потом делать это по своему усмотрению.
Однако вам придется вручную обрабатывать больше сценариев ответа HTTP ios, но по крайней мере, вы получаете полный контроль над тем, что делать со своими байтами.