Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - [C#] app windows mobile - errore in esecuzione dovuto a metodo non trovato! perchè mai?
Forum - C# / VB.NET - [C#] app windows mobile - errore in esecuzione dovuto a metodo non trovato! perchè mai?

Avatar
cronico (Normal User)
Newbie


Messaggi: 3
Iscritto: 25/11/2010

Segnala al moderatore
Postato alle 16:29
Giovedì, 25/11/2010
Questo topic è stato chiuso dal moderatore

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:
Codice sorgente - presumibilmente Delphi

  1. string posthttp(String url, String username, String password)
  2.         {
  3.             string str = "nickname="+ HttpUtility.UrlEncode(username) + "&password=" + HttpUtility.UrlEncode(password);
  4.             HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
  5.             request.KeepAlive = false;
  6.             request.ProtocolVersion = HttpVersion.Version10;
  7.             request.Method = "POST";
  8.  
  9.             byte[] postBytes = Encoding.ASCII.GetBytes(str);
  10.             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";
  11.             request.ContentType = "application/x-www-form-urlencoded";
  12.             request.ContentLength = postBytes.Length;
  13.             Stream requestStream = request.GetRequestStream();
  14.             requestStream.Write(postBytes, 0, postBytes.Length);
  15.             requestStream.Close();
  16.  
  17.             HttpWebResponse response = (HttpWebResponse)request.GetResponse();
  18.             String risposta = new StreamReader(response.GetResponseStream()).ReadToEnd();
  19.             return risposta;
  20.         }



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!


CronicoIntollerante
PM
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2765
Iscritto: 21/09/2007

Up
0
Down
V
Segnala al moderatore
Postato alle 17:17
Giovedì, 25/11/2010

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 :)


Ingegnere Informatico
https://ldlagency.it
PM
Avatar
cronico (Normal User)
Newbie


Messaggi: 3
Iscritto: 25/11/2010

Up
0
Down
V
Segnala al moderatore
Postato alle 18:52
Giovedì, 25/11/2010
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.


CronicoIntollerante
PM
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2765
Iscritto: 21/09/2007

Up
0
Down
V
Segnala al moderatore
Postato alle 19:27
Giovedì, 25/11/2010
Testo quotato

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:


Ingegnere Informatico
https://ldlagency.it
PM
Avatar
cronico (Normal User)
Newbie


Messaggi: 3
Iscritto: 25/11/2010

Up
0
Down
V
Segnala al moderatore
Postato alle 19:53
Giovedì, 25/11/2010
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:

di niente :) - HeDo - 26/11/10 01:02


CronicoIntollerante
PM