Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

Windows Phone και Decompress data

Îåêßíçóå áðü ôï ìÝëïò evagelos. Τελευταία δημοσίευση από το μέλος evagelos στις 03-05-2016, 17:50. Υπάρχουν 3 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  13-04-2016, 20:47 77661

    Windows Phone και Decompress data

    Γεια σας παιδιά

    Έχω μια εφαρμογή στα windows phone που κάνει web κλήσεις και έχει σαν αποτέλεσμα ένα json string

    Ως εδώ μια χαρά.

    Ο server που έχει τα δεδομένα είναι "δικός" μου οπότε αποφάσισα να κάνω compress

     public static byte[] Zip(string str)
    {
    var bytes = System.Text.Encoding.UTF8.GetBytes(str);
    using (var msi = new System.IO.MemoryStream(bytes))
    using (var mso = new System.IO.MemoryStream())
    {
    using (var gs = new System.IO.Compression.GZipStream(mso, System.IO.Compression.CompressionMode.Compress))
    {
    CopyTo(msi, gs);
    }
    return mso.ToArray();
    }
    }

    και να γυρίζω ένα byte[]  πλέον

    στη συσκευή πλέον, προσπαθώ να κανω decompress

     

    public static byte[] Decompress(byte[] compressed)
    {
    using (MemoryStream inStream = new MemoryStream(compressed))
    {
    inStream.Seek(0, SeekOrigin.Begin);
    using (System.IO.Compression.GZipStream gzipStream = new System.IO.Compression.GZipStream(inStream, System.IO.Compression.CompressionMode.Decompress))
    {
    using (MemoryStream outStream = new MemoryStream())
    {
    outStream.Seek(0, SeekOrigin.Begin);
    gzipStream.CopyTo(outStream);
    return outStream.ToArray();
    }
    }
    }

     

    όμως σκάει εδώ: outStream.Seek(0, SeekOrigin.Begin);

     

    όταν γυρίζει στο κινητό το string ξεκινάει κάπως ετσι: H4sI

    Κανεις καμια ιδέα ή άλλο τρόπο;

     

     

    Σας ευχαριστώ 

     

  •  18-04-2016, 18:25 77666 σε απάντηση της 77661

    Απ: Windows Phone και Decompress data

    Ο IIS και γενικά οι web servers υποστηρίζουν GZip compression. Το μόνο που χρειάζεται είναι να βάλεις την κατάλληλη τιμή στο Accept-Encoding header και ο server θα επιστρέψει τα αποτελέσματα συμπιεσμένα. Όλοι οι web servers το υποστηρίζουν. Επίσης, οι κλάσεις του .NET όπως η HttpClient μπορούν αυτόματα να αποσυμπιέσουν με τις κατάλληλες ρυθμίσεις, πχ. θέτοντας το HttpClientHandler.AutomaticDecompression property.

    Γιατί προσπαθείς να φτιάξεις το δικό σου compression?  


    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  23-04-2016, 16:53 77690 σε απάντηση της 77666

    Απ: Windows Phone και Decompress data

     
    Εχει τέτοια ρύθμιση ο IIS;
    που την βρίσκω;
    Μονο το dynamic και το static content βλέπω σαν ρύθμιση.
    Πρέπει να προσθέσω αυτό στο "Web.config" ;
      
    <httpProtocol>
        <customHeaders>
        <remove name="Vary"></remove>
        <add name="Vary" value="Accept-Encoding"></add>
        </customHeaders>
      </httpProtocol>
     
    Αν είναι αυτά που εννοείς,
    τότε δεν κάτι δεν δείχνει να λειτουργεί
    το λέω αυτό γιατί στο http χωρίς να προσθέσω το  
     AutomaticDecompression = System.Net.DecompressionMethods.GZip | System.Net.DecompressionMethods.GZip
    τα διαβάζει κανονικά στο "DeserializeObject" που του κάνω και όχι σαν "κινεζικα" που υποθέτω πως θα είναι
    επίσης στο header δεν θα έπρεπε να βλέπω ότι είναι Accept-Encoding Vary;
  •  03-05-2016, 17:50 77694 σε απάντηση της 77690

    Απ: Windows Phone και Decompress data

    Για κάθε ενδιαφερόμενο, ακολούθησα αυτές τις οδηγίες:
     
    http://kristofmattei.be/2014/10/27/enabling-dynamic-compression-gzip-webapi-iis/ 
     
    Και ήταν η λύση του προβλήματός μου 
     
    Σας ευχαριστώ 
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems