Jag försöker skicka serialiserade parameterar i QueryString med hjälp av LosFormatter och drabbas ibland av felet: "Invalid length for a Base-64 char array". Någon som vet vad detta kan bero på? Base64 kodar en byte-trippel till en 6-bit kvadruppel. För att detta ska gå jämnt ut måste datan som ska kodas ha en byte-längd som är jämnt delbar med 3. Är den inte det läggs bytes med värde 0 till på slutet. På samma sätt måste antalet 6-bit grupper i det kodade datat vara jämnt delbar med 4. 6-bit grupperna kodas enligt ett schema som består av siffror (0-9), små bokstäver (a-z), stora bokstäver (A-Z) samt tecknen + och /. Eventuella utfyllnadsnollor på slutet kodas med = för att skilja dem från nollgrupper i datat (A). Det var ju ett uttömmande svar :) Om den kodade datan råkar innehålla ett + (111110) så ersätts detta med ett blanksteg i querystringen om du inte använder HttpUtility.UrlEncode. Eftersom blanksteg inte ingår i base64-kodningen så kan inte datan avkodas och det blir knas. Givetvis så är detta lösningen på problemet, borde ha tänkt på det själv. TACK!Querystring problem
Sv: Querystring problem
ex:
bytes: 10010101 01001101 00110101 10010011 00000000 00000000
6-bit: 100101 010100 110100 110101 100100 110000 000000 000000
base64: lU01kw==
Din base64 data är alltså inte delbar med 4.Sv:Querystring problem
Men jag tror inte att det är detta som är felet eftersom jag har provat att serialisera och deserialisera samma data som skickas, och det fungerar alldelens utmärkt.Sv: Querystring problem
Sv:Querystring problem