Visualizza la versione completa : IdHTTP.Post ed invio dati ad una pagina Web
Ciao a tutti,
dovrei inviare alcuni dati da un'applicazione a una pagina html e il codice che uso ora è questo:
var
valori: TStringList;
begin
inherited;
if Connection.IpAddress <> '' then
begin
valori := TStringList.create();
valori.add('F1');
IdHTTP1.Post('http://'+Connection.IpAddress+'/wtActive_keyboard.htm%KEY_F1', valori);
end;
end;
Questo è l'errore:
Exception class EidHTTPProtocolException with message 'HTTP/1.0 501 Not implemented'.
Cosa significa? Da cosa dipende il problema? Per scrupolo ho verificato che da IE funzioni e infatti non ho avuto problemi.
Grazie
Come puoi verificare che da Internet Explorer funzioni un'operazione di POST senza costruirti una pagina apposita per inviare i dati, appunto, in POST?
Perchè la pagina html che invia i dati in post ce l'ho già ed è funzionante. L'errore da cosa dipende?
Originariamente inviato da colde
Perchè la pagina html che invia i dati in post ce l'ho già ed è funzionante. L'errore da cosa dipende?
Mi sono spiegato male. La pagina ce l'hai, ma come puoi essere sicuro che la richiesta fatta da Internet Explorer sia uguale a quella che inoltri tu?
Inoltre, osservando l'indirizzo, vedo comparire un %KEY_F1 che non so come possa essere accettato, visto che - se non ricordo male - il carattere "%" è normalmente seguito dal codice esadecimale del carattere da rappresentare (viene usato quindi per specificare caratteri che normalmente non sarebbero interpretabili nella loro forma naturale, come lo spazio).
:master:
In effetti non posso avere la certezza che i dati che invio da software abbiano la stessa "formattazione" di un post inviato da IE ma non so se ci siano alternative o modi per scoprirlo. Da IE ho un p.d.c. che fa le stesse cose del software in fase di sviluppo, quindi ho preso l'action del form e l'ho inserito come URL nel method POST di Delphi e stessa cosa per i valori da inviare (creando una serie di stringhe composte da "nomevariabile=valore"). Effettivamente non so se il POST invia i dati in questo modo quindi sicurezza non ne ho ma non saprei nemmeno come verificare.
Per quanto riguarda "%KEY_F1" che hai visto nell'indirizzo non è un problema, la maggiorparte delle chiamate sono così; è stato sviluppato in questo modo volontariamente. Ti ricordo che non si tratta di pagine HTML "standard" interpretate da un server "normale" ma create ad hoc e quindi il PC che farà da server è stato istruito appositamente con un firmware personalizzato che accetta questo tipo di chiamate e risponde di conseguenza. In realtà non è proprio un server e nemmeno esattamente un PC, tecnicamente lo è a tutti gli effetti visto che ha lo stesso hardware di base di un PC e come OS monta Linux ma visto esternamente, del PC non ha assolutamente niente.
Dall'NG di google ho trovato un post in cui si dice che i valori da inviare con IdHTTP.Post devono essere formattati come "NomeVariabile=valore" quindi teoricamente quella parte dovrei averla fatta giusta. L'errore che mi ritorna allora da cosa può dipendere?
Originariamente inviato da colde
Dall'NG di google ho trovato un post in cui si dice che i valori da inviare con IdHTTP.Post devono essere formattati come "NomeVariabile=valore" quindi teoricamente quella parte dovrei averla fatta giusta. L'errore che mi ritorna allora da cosa può dipendere?
Nel codice che hai scritto nel primo messaggio, non hai seguito questa forma. :master: