Voglio produrre il risultato decodificato per i dati POST. Gran parte del codice viene "sprecata" nella conversione di "string". Questo rende il codice brutto. Qualche soluzione migliore?Come evitare la conversione tra diversi tipi di 'stringhe' in 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
Quale sarebbe il codice per questo scopo?
Forse aggiungere la mia funzione 'fromMaybeW8sToLBS = LBS.pack. map (fromMaybe 0) ' – wenlong
Perché è necessario decodificare autonomamente il corpo della richiesta? Sei sicuro che Snap non lo fa per te? – nponeccop
@nponeccop, corpo della richiesta ha tipo ByteString, voglio considerarlo come stringa codificata url e decodificarlo. Ma decodificare '(decodificare url) vuole String e restituisce [Forse Word8]. – wenlong