मैं पोस्ट डेटा के लिए डीकोडेड परिणाम देना चाहता हूं। 'स्ट्रिंग' को परिवर्तित करने में बहुत अधिक कोड 'बर्बाद' होता है। यह कोड बदसूरत बनाता है। कोई बेहतर समाधान?स्नैपफ्रेमवर्क का उपयोग करके हैकेल में विभिन्न 'स्ट्रिंग' प्रकारों में कनवर्ट करने से कैसे बचें?
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
इस उद्देश्य के लिए आपका कोड क्या होगा?
हो सकता है कि मेरा खुद का फ़ंक्शन 'MaybeW8sToLBS = LBS.pack से जोड़ें। मानचित्र (मई 0 से 0) ' – wenlong
आपको अनुरोध निकाय को खुद को डीकोड करने की आवश्यकता क्यों है? क्या आप सुनिश्चित हैं कि स्नैप आपके लिए ऐसा नहीं करता है? – nponeccop
@nponeccop, अनुरोध निकाय ने बाइटस्ट्रिंग टाइप किया है, मैं इसे यूआरएल एन्कोडेड स्ट्रिंग के रूप में मानता हूं और इसे डीकोड करता हूं। लेकिन डीकोड '(यूआरएल डीकोड) स्ट्रिंग और रिटर्न [शायद वर्ड 8] चाहता है। – wenlong