Oppure

Loading
Questo topic e' stato chiuso dal moderatore.
25/11/10 15:29
cronico
salve a tutti! è la prima volta che scrivo in questo forum, e negli ultimi tempi lo sto trovando molto interessante in quanto mi ha aiutato a risolvere svariati problemini!

sto sviluppando un'applicazione per windows mobile (VISUAL STUDIO 2008 - .NET FRAMEWORK 3.5 - WINDOWS MOBILE 6 EMULATOR) che effettua la connessione ad un sito di messaggistica tramite un HTTP POST e sono alle prese proprio con la scrittura della funzione di login! la funzione che ho scritto fa ottimamente il suo lavoro in quanto testata separatamente all'interno di un blocco ConsoleApplication; ed inserita nel codice "mobile" non dà problemi in quanto compila immediatamente!

il codice è il seguente:
        
        string posthttp(String url, String username, String password)
        {
            string str = "nickname="+ HttpUtility.UrlEncode(username) + "&password=" + HttpUtility.UrlEncode(password);
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); 
            request.KeepAlive = false;
            request.ProtocolVersion = HttpVersion.Version10;
            request.Method = "POST";

            byte[] postBytes = Encoding.ASCII.GetBytes(str);
            request.UserAgent = "Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1A543 Safari/419.3";
            request.ContentType = "application/x-www-form-urlencoded";
            request.ContentLength = postBytes.Length;
            Stream requestStream = request.GetRequestStream();
            requestStream.Write(postBytes, 0, postBytes.Length);
            requestStream.Close();

            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
            String risposta = new StreamReader(response.GetResponseStream()).ReadToEnd();
            return risposta;
        }


nel momento in cui però vado ad eseguire l'applicazione, sia in emulazione con vs2008 che sul mio palmare htc l'errore che mi ritorna è:

Method not found: GetString
System.Text.Encoding
at System.Web.HttpUtility.UrlEncode()

preciso che le librerie System.Web e System.Text le ho correttamente importate e che questo stesso codice compila/gira correttamente per cmd! non ho molta esperienza per quanto riguarda questo tipo di programmazione nello specifico lo ammetto, ma veramente non riesco a spiegarmi questa cosa! help!
aaa
25/11/10 16:17
HeDo

il compact framework non si porta dietro proprio tutto, ed evidentemente il metodo UrlEncode chiama un metodo che non è definito nel compact framework.

la soluzione è riscriversi la funzione da sè a partire dalla specifica :)
aaa
25/11/10 17:52
cronico
grazie mille HeDo per la risposta! forse allora mi sono perso qualcosa. mi stai dicendo che le lib System.Web e System.Text che importo (e che uso alla grande pari pari nella versione "desktop" del framework) risultano essere non pienamente utilizzabili dalla versione compact dello stesso framework???
naturalmente c'è qualcosa che non va! ho appena provato ad omettere UrlEncode perchè nelle mie credenziali di login nello specifico non ci sono spazi ed era a codificare proprio gli spazi per fare un lavoro più generale possibile che UrlEncode serviva; ed un altro di questi simpatici errori apocalittici lo ricevo su System.Net.HttpWebRequest.finishGetResponse().
ora, non vedo proprio come potrei riscrivermi una funzione di questo tipo... sono deluso.
aaa
25/11/10 18:27
HeDo
Postato originariamente da cronico:

grazie mille HeDo per la risposta! forse allora mi sono perso qualcosa. mi stai dicendo che le lib System.Web e System.Text che importo (e che uso alla grande pari pari nella versione "desktop" del framework) risultano essere non pienamente utilizzabili dalla versione compact dello stesso framework???
naturalmente c'è qualcosa che non va! ho appena provato ad omettere UrlEncode perchè nelle mie credenziali di login nello specifico non ci sono spazi ed era a codificare proprio gli spazi per fare un lavoro più generale possibile che UrlEncode serviva; ed un altro di questi simpatici errori apocalittici lo ricevo su System.Net.HttpWebRequest.finishGetResponse().
ora, non vedo proprio come potrei riscrivermi una funzione di questo tipo... sono deluso.


eh ci sarà un motivo per cui si chiama "compact" framework :)

cmq secondo me con una ricerca su google si risolve tutto :k:
aaa
25/11/10 18:53
cronico
hai ragione mi sono documentato un pò meglio sul compact tramite il supporto microsoft e i metodi da me invocati non avrebbero mai potuto funzionare dato che in quell'ambiente non esistono!
mi stupisco di come visual studio mi abbia automaticamente suggerito di fare l'adding di referenze che non c'entravano un tubo quando ho scritto (con tutta la scioltezza derivata dal test della stessa app su Console) "using System.Web"!!!

ho fatto qualche ricerchina ma per ora poco o niente. bisogna spulciare meglio. grazie comunque per avermi illuminato!:hail:
aaa