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

 

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

Πρόβλημα με url Encoding σε C# app με χρήση HttpWebRequest και HttpWebResponse

Îåêßíçóå áðü ôï ìÝëïò Chrysostomos Kolovos. Τελευταία δημοσίευση από το μέλος Chrysostomos Kolovos στις 14-03-2011, 14:49. Υπάρχουν 5 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  14-03-2011, 13:06 64174

    Πρόβλημα με url Encoding σε C# app με χρήση HttpWebRequest και HttpWebResponse

    Προσπαθώ να κάνω post μια φόρμα με χρήση HttpWebRequest και HttpWebResponse μέσα από μια εφαρμογή. Χρησιμοποιώ και το Fiddler για να παρακολουθώ τις κινήσεις που κάνω. Η σελίδες στις οποίες κάνω post είναι php και δεν είναι δικιά μου εφαρμογή. Όταν ποστάρω σε μια σελίδα αυτή μετά με κάνει transport σε μια άλλη δίνοντας μου στο querystring μια παράμετρο(κωδικό) που περιέχει ελληνικά γράμματα. Και ενώ στο fiddler το βλέπω κανονικά τα ελληνικά, μέσα στο object του .net μου το βγάζει αλαμπουρνέζικα. 
    Αν χρειάζεται παραπάνω διευκρίνηση αυτό που λέω πείτε μου.

    Ευχαριστώ 
     


  •  14-03-2011, 13:22 64175 σε απάντηση της 64174

    Απ: Πρόβλημα με url Encoding σε C# app με χρήση HttpWebRequest και HttpWebResponse

    Βρήκα τη λύση. Από αυτό το post -> http://stackoverflow.com/questions/4154104/getting-httpwebrequest-to-use-iso-8859-1-encoding-for-urlencoding

    Παραθέτω τον σχετικό κώδικα να υπάρχει.
    string input = "http://www.example.com/q?Ö=æ";
    
    StringBuilder sb = new StringBuilder();
    foreach (byte by in Encoding.GetEncoding("ISO-8859-1").GetBytes(input))
    {
        // NOTE: This is very simplistic; a robust solution would probably really need
        // to handle all non-alphanum and non-reserved characters, as specified by
        // http://www.ietf.org/rfc/rfc2396.txt
        if (by <= 0x7F)
            sb.Append((char) by);
        else
            sb.Append(string.Format("%{0:X2}", by));
    }
    
    Uri uri = new Uri(sb.ToString());
    // uri.AbsoluteUri == "http://www.example.com/q?%D6=%E6"



  •  14-03-2011, 14:19 64177 σε απάντηση της 64175

    Απ: Πρόβλημα με url Encoding σε C# app με χρήση HttpWebRequest και HttpWebResponse

    Πρόσεξες τί λένε στο thread που παραθέτεις? "Χειρότερη δυνατή λύση, αλλάξτε τον κώδικα να δουλεύει με UTF8". Άσε που ΔΕΝ πρέπει να εμφανίζονται χύμα ASCII characters στα URL, παραβιάζουν το standar. Ακόμα κι έτσι όμως, μπορείς να κάνεις τη μετατροπή χωρίς να πιάσεις ένα-ένα χαρακτήρα. Όπως υπάρχει η Encoding.GetBytes(string) υπάρχει και η Encoding.GetString(byte[]) για να κάνει την αντίθετη μετατροπή.

    Αν ο κώδικας που φτιάχνει τα URL είναι δικός σου καλύτερα θα είναι να τον διορθώσεις.


    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  14-03-2011, 14:33 64178 σε απάντηση της 64177

    Απ: Πρόβλημα με url Encoding σε C# app με χρήση HttpWebRequest και HttpWebResponse

    Παναγιώτης Καναβός:

    Πρόσεξες τί λένε στο thread που παραθέτεις? "Χειρότερη δυνατή λύση, αλλάξτε τον κώδικα να δουλεύει με UTF8". Άσε που ΔΕΝ πρέπει να εμφανίζονται χύμα ASCII characters στα URL, παραβιάζουν το standar. Ακόμα κι έτσι όμως, μπορείς να κάνεις τη μετατροπή χωρίς να πιάσεις ένα-ένα χαρακτήρα. Όπως υπάρχει η Encoding.GetBytes(string) υπάρχει και η Encoding.GetString(byte[]) για να κάνει την αντίθετη μετατροπή.

    Αν ο κώδικας που φτιάχνει τα URL είναι δικός σου καλύτερα θα είναι να τον διορθώσεις.


    "αλλάξτε τον κώδικα να δουλεύει με UTF8" εννοείς τον κώδικα που φτιάχνει τα URL? 





  •  14-03-2011, 14:40 64182 σε απάντηση της 64178

    Απ: Πρόβλημα με url Encoding σε C# app με χρήση HttpWebRequest και HttpWebResponse

    Αυτό ακριβώς λένε και αυτοί, και συμφωνώ κι εγώ
    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  14-03-2011, 14:49 64183 σε απάντηση της 64182

    Απ: Πρόβλημα με url Encoding σε C# app με χρήση HttpWebRequest και HttpWebResponse

    Είπα.. "Η σελίδες στις οποίες κάνω post είναι php και δεν είναι δικιά μου εφαρμογή. "

    Αν ήταν δικιά μου γιατί να καθόμουν να τρωγόμουν με το να ποστάρω html forms?  Θα έφτιαχνα ένα webservice και θα τελείωνα...




Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems