Quiero producir el resultado decodificado para datos POST. Gran parte del código se 'desperdicia' al convertir 'cadena'. Eso hace que el código sea feo. ¿Alguna mejor solución?¿Cómo evitar la conversión entre diferentes tipos de 'cadenas' en haskell, usando snapframework?
import Codec.Binary.Url (decode')
import qualified Data.ByteString.Lazy.Char8 as L (unpack)
import qualified Data.ByteString.Char8 as S (unpack, pack)
import qualified Data.ByteString.Lazy as LBS (pack)
decodeUrlHandler :: Snap()
decodeUrlHandler = do
body <- readRequestBody (maxBound :: Int64)
writeLBS $ LBS.pack $ map (fromMaybe 0) $ decode' $ L.unpack body
¿Cuál sería su código para este propósito?
Quizás agregue mi propia función 'fromMaybeW8sToLBS = LBS.pack. map (fromMaybe 0) ' – wenlong
¿Por qué necesita decodificar el cuerpo de la solicitud usted mismo? ¿Estás seguro de que Snap no hace eso por ti? – nponeccop
@nponeccop, el cuerpo de la solicitud tiene ByteString, quiero considerarlo como una cadena codificada en url y decodificarla. Pero decodificar '(url decodificar) quiere Cadena y devuelve [Tal vez Word8]. – wenlong