211 messaggi dal 02 novembre 2010
Ciao a tutti.
Sto cercando di effettuare la lettura di un feedrss dal questo indirizzo
https://www.tabaccai.it/index.php?option=com_content&view=category&id=29&Itemid=201&format=feed&type=rss.

A differenza di altri feedrss che riesco a leggere correttamente, in questo caso invece mi viene segnalato un errore nel formato:

Il carattere '\u001f', con valore esadecimale 0x1F, non è valido. Riga 1, posizione 1.


Sto ipotizzando sia una questione di formattazione o di codifica HTML, ma non riesco a capire come gestirlo.

Sto effettuando la lettura con quest'istruzione
rssXmlDoc.Load("https://www.tabaccai.it/index.php?option=com_content&view=category&id=29&Itemid=201&format=feed&type=rss");


Qualcuno si è già scontrato su questo problema?
211 messaggi dal 02 novembre 2010
Ho provato a scaricare il file tramite queste istruzioni
WebClient w = new WebClient();
var codifica = System.Text.Encoding.GetEncoding("iso-8859-1");
w.DownloadFile(rssURL, @"C:\prova\prova.xml", );


e questo è ciò che mi ritrovo dentro il file.

‹      í½ioÛF†?Ç@ÿÄ’1ÅKMSJÕ¸FÔmÐ¸í‡ ÖâJÚ†âäÒWÛÿÞY¶([²¥H–,Ó»½Ùwf‡©¥Ü×ç#Ni3´£¦+@ƒ÷X0h+‰è«¶òº³ã>WUФFD𨭼ã|ä“ç Âo!
àO¢&#8230;7<4pD2 #ÜT@U±wÇ×6Li­±&#402;µ&#8226;¡¡£igggµ3«Æ£fêzCëâI¥³óÌí
IP7¾¹&#8218;  ¾v´É  éõsµl_¸ñhÜ&#8249;X(ÐFÇ}þñÍA÷&#184;û1k8d»Pt)¶øõ!ÜüÀ$¢BPÜ&#164;Ñ)»dùÙ!)¨ÊúéSÇÕƍIã>&#190;tä8â| "¿v  =¯&#8230;ÃP&#8249;³kk&#8218;D¬ß§®&#8211;öK/@bñcÂ|ï¤Ú9âÁ.-ô%S7l0ê´&#8240;ÿ,x¥£6دÔ\^à*8ûÆÆÕ®ûÈ+È`8Ò!&#710;&#168;ßVbê÷!m+$}



Sembrerebbe un problema di codifica, ma come forzarla?
11.857 messaggi dal 09 febbraio 2002
Contributi
Ciao, quel contenuto è compresso in gzip. Qui trovi una soluzione:
https://stackoverflow.com/questions/16791068/loading-xml-document-from-a-url-issue

ciao,
Moreno

Enjoy learning and just keep making
211 messaggi dal 02 novembre 2010
Perfetto! Adesso si che funziona.
Da cosa hai capito che fosse uno zip? Non ci ho minimamente pensato; ma non ho notato nessun riferimento.

Grazie veramente del suggerimento.
Ti devo una birra!
11.857 messaggi dal 09 febbraio 2002
Contributi
Prego :)
L'errore indicava la riga 1, posizione 1 quindi vuol dire che il parser XML si è bloccato già al primo carattere incontrato. Questo può succedere se il contenuto restituito con la risposta non è XML. Inizialmente non sapevo che il problema fosse la codifica gzip: il problema poteva anche essere un altro, tipo i 3 caratteri di preambolo della codifica UTF8. Quindi ho aperto fiddler e così ho potuto vedere l'esatto contenuto della risposta e dall'intestazione Content-Encoding si capiva appunto che il contenuto era stato gzippato.
Inoltre, usando la "HexView" di Fiddler, si vede appunto che il primo carattere della risposta è infatti il 0x1F riportato nell'errore. Da qui ho avuto la conferma che l'oggetto XmlDocument aveva provato a leggere il contenuto compresso, non riuscendoci. Poi cercato una soluzione su internet e ho trovato quel post su StackOverflow.

ciao,
Moreno
Modificato da BrightSoul il 17 settembre 2018 15.02 -

Enjoy learning and just keep making

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.