Newsgroup: it.comp.lang.perl
Titolo: Problema download Midlet < < CGI

ciao,
ho un problema con un cgi Perl che in risposta
ad una midlet (j2me) restituisce dei dati  con un semplice :
print "Content-type: text/html\n\n";
# elabora dati ......
print $stringa;
il problema che capita sul cellulare e' che al 4096 byte il download
si ferma! Questo non accade se scarico un file normale,
accade solo con il cgi.
Avete qualche idea ?
Io ne ho provate diverse ma senza risultato!:-/
Grazie



Forse devi restituire nel response header anche:
Transfer-Encoding: chunked
Cosi' il tuo UA capisce che c'e' altro da prendere...

 ha scritto nel messaggio
news:1abr1s9nb0l3o.1wk2yzp5s8xvw$.dlg@40tude.net...

Scusa potresti essere piu' preciso su come inserirlo ?
non mi riesce, se lo metto dopo  print "Content-type: text/html\n\n";
 appare nel testo, se lo metto prima non appare nulla!
Come avrai capito  ne so poco di Perl :(
Grazie

Come avrai capito  ne so poco di Perl :(
Mi sembra che Perl c'entri per l'appunto poco.
Se dev'essere un campo dell'header, naturalmente non puoi metterlo nel
testo, se no ti compare ovviamente nel testo: il testo è separato
dall'header da una riga vuota ("\n"), che tu generi con
    print "Content-type: text/html\n\n";# 2 a-capo: \n\n
Se vuoi mettere un altro campo dell'header dopo Content-Type, devi togliere
un a-capo:
    print "Content-type: text/html\n";
    print "Transfer-Encoding: chunked\n";
    ...
    print "Ultimo-campo: e basta!\n\n";
Che poi funzioni o non funzioni è un altro problema, per il quale io non ti
posso aiutare.
Ciao.

 ha scritto nel messaggio
news:g5roa019armhpjpju...@4ax.com...

Grazie 1000" Questa cosa degli spazi non la sapevo, ora provo!
P.s. al byte 4096 mi dice :  "IOException: 'chunk' not CRLF terminated"
Ma poi perche' proprio a quel punto ?... Boh!
Ciao

Ma poi perche' proprio a quel punto ?... Boh!
Come dicevo, l'argomento non ha tanto a che fare con Perl, ma piuttosto,
direi, con il protocollo http e con il modo in cui viene gestito dal
cellulare.
Di queste cose io ne so più o meno nulla (forse qualcosa di meno, perché
quel poco che credo di sapere rischia di essere sbagliato). Ad orecchio,
dal messaggio che ti dà, mi viene da pensare che, se invii un documento a
pezzi, devi anche gestire in modo formalmente corretto tali pezzi; fra gli
aspetti formali da osservare, pare che i pezzi debbano essere terminati da
CRLF. Quanto al punto, può darsi che il cellulare non sia in grado di
gestire pezzi più grandi, o che la dimensione derivi da qualche
impostazione del server.
Con questo però ho proprio esaurito tutte le mie capacità divinatorie,
almeno per oggi. Posto anche che la diagnosi paragnostica sia corretta, non
ho la minima idea sulla possibile terapia.
Ciao.

 ha scritto nel messaggio
news:0qvoa01kjb05o6m8i...@4ax.com...

Io ne so meno di te, puoi scommetterci!
Ma e' ovvio che il cgi e il cell. non si capiscono, non parlano la stessa
lingua! Perche' il cell' riesce a scaricare anche file molto grandi ma solo
se sono file "veri" presenti sul server. Sono sicuro che c'e' il modo
o nella Midlet o nel cgi di far si che si capiscano ma non l'ho ancora
trovato!
Cmq il tuo esempio :
---------------------
print "Content-type: text/html\n";
print "Transfer-Encoding: chunked\n";
---------------------
non va, mi da errore anche nel browser!
Boh!
Ciao

non va, mi da errore anche nel browser!
Tutto quello che posso fare è rimandarti all'RFC che definisce il
protocollo http:
http://www.w3.org/Protocols/rfc2616/rfc2616.html
e alle sezioni relative al "Transfer-Encoding: chunked":
http://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.6
http://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.6.1
Non credo che sia necessario conoscere la cosa con questo dettaglio, ma
magari, leggendo qui e là a campione, può venirti qualche idea.
Ciao.

magari, leggendo qui e là a campione, può venirti qualche idea.
Per esempio, che il nome del campo è, a quanto pare, "Transfer-Coding", non
"Transfer-Encoding".
Ciao.

 Grazie
~*~*~*~*~*~*~*
print "Content-type: text/html\r\n"; #nota \r!!!
print "Transfer-Encoding: chunked\r\n";
# elabora dati ......
print $stringa;
~*~*~*~*

"Transfer-Encoding".
O che non ho capito nulla.
Ok, come ho detto, meglio finirla qui, almeno per oggi.
Ciao.

 ha scritto nel messaggio
news:beipa01pic15tq1j0...@4ax.com...

Cmq non ho ancora risolto :-/
Per ora sospendo il problema.
Grazie ciao

considerando che i file "normali" li scarica tutti...
Se il problema fosse dovuto al fatto che il cell non sa la dimensione del
file  :
non si puo' far si che il cgi  comunichi la dimensione  come farebbe se
fosse
un normale file e non un cgi ?
Grazie

fosse un normale file e non un cgi ?
Quanto a "potere", direi che la risposta sta qui:
 
http://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html#sec4.4
 
http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.13
Che cosa succede e se cambia qualcosa lo devi verificare tu.
Ciao.

 ha scritto nel messaggio
news:r8b3b0t08njdtbuni...@4ax.com...

Credo che il problema sia proprio comunicare la dimensione del file
virtuale!
Dal Ktool  network monitor vedo che e' gia " chunked" anche senza
specificarlo
ma la lunghezza e' zero!
Spero di riuscire a capire qualcosa nei link che mi hai dato
( il mio inglese e' vecchio di 23 anni :-( )
intanto ti ringrazio. :)
Ciao