Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1
    Utente di HTML.it L'avatar di supermac
    Registrato dal
    Jun 2001
    Messaggi
    1,856

    leggere xml generato da file ashx

    Ho un file ashx che mi genera un xml che non riesco a leggere da codebehind.

    Ho provato con:
    codice:
    dim strMyUrl as string = "http://miosito.it/nomefile.ashx?par1=x&par2=y&par3=z"
    Dim doc As New XmlDocument
    doc.Load(strMyUrl)
    ma sul load mi ritorna un erroraccio
    Riferimento a entità non dichiarata: 'nbsp'. Riga 45, posizione 25.

    Allora ho tentato così:
    codice:
        Dim fs = GetStreamFromUrl(strMyUrl)
        Dim settings As New XmlReaderSettings()
        settings.DtdProcessing = DtdProcessing.Parse
        Dim reader As XmlReader = XmlReader.Create(fs, settings)
        While reader.Read()
    
            If (reader.Name.Equals("marker") And (reader.NodeType = XmlNodeType.Element)) Then
            ....
    ed effettivamente sembra creare un xmlreader ma poi non entra mai nell'IF, cioè è come se leggesse tutt'altro file e non rilevasse i tag dell'xml.


    Sono abbastanza certo che il file ashx dia un xml fatto come dio comanda perchè lo stesso file ashx fornisce con successo i dati ad un JS per la creazione di punti su una mappa di Google
    codice:
     downloadUrl(strMyUrl, function (data) {
        var xml = data.responseXML;
        var markers = xml.documentElement.getElementsByTagName('marker');
        ...
    (funziona, provato) e inoltre se metto strMyUrl nella barra degli indirizzi del browser vedo l'XML apparentemente ben formato...


    ... e allora cosa sbaglio?
    W la Ferari effetrenavenave!
    il computer è un somaro veloce! (neanche tanto ndr)

  2. #2
    Utente di HTML.it L'avatar di supermac
    Registrato dal
    Jun 2001
    Messaggi
    1,856
    Well, ho scoperto che l'xmlreader legge il codice html della pagina di login del sito .... ora sarei curioso di sapere perchè.
    W la Ferari effetrenavenave!
    il computer è un somaro veloce! (neanche tanto ndr)

  3. #3
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Quote Originariamente inviata da supermac Visualizza il messaggio
    Well, ho scoperto che l'xmlreader legge il codice html della pagina di login del sito .... ora sarei curioso di sapere perchè.
    momento, se prendi un browser e metti questo indirizzo:

    http://miosito.it/nomefile.ashx?par1=x&par2=y&par3=z

    cosa ti da?
    Pietro

  4. #4
    Utente di HTML.it L'avatar di supermac
    Registrato dal
    Jun 2001
    Messaggi
    1,856
    l'xml bello pimpante
    W la Ferari effetrenavenave!
    il computer è un somaro veloce! (neanche tanto ndr)

  5. #5
    Utente di HTML.it L'avatar di supermac
    Registrato dal
    Jun 2001
    Messaggi
    1,856
    nota che anche la pagina chiamante è di http://miosito.it
    quindi chiamante e chiamata girano nella stessa sessione utente
    W la Ferari effetrenavenave!
    il computer è un somaro veloce! (neanche tanto ndr)

  6. #6
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Pensavo che il browser ti mandasse nella pagina di login. Avevo capito male. Ciao.
    Pietro

  7. #7
    Utente di HTML.it L'avatar di supermac
    Registrato dal
    Jun 2001
    Messaggi
    1,856
    Allora:
    1) se utente NON loggato e uso l'url del file ashx, mi manda alla pagina di login
    2) dopo aver fatto login invece:
    - il browser restituisce l'XML senza problemi
    - il JS usa la pagina ashx senza problemi
    - l'XMLreader nel codebehind legge l'html della pagina di login
    .....
    W la Ferari effetrenavenave!
    il computer è un somaro veloce! (neanche tanto ndr)

  8. #8
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    provo a fare delle prove
    Pietro

  9. #9
    Utente di HTML.it L'avatar di supermac
    Registrato dal
    Jun 2001
    Messaggi
    1,856
    Ora sto provando così, ho fatto login e sono in una pagina da cui in codebehind chiamo il mio file ashx
    codice:
     Protected Sub crealista(ByVal dati As String)
            Dim fs = GetStreamFromUrl(dati)
            Dim doc As New XmlDocument
            doc.Load(fs)
            Response.Write(Server.HtmlEncode(doc.InnerXml))
    ...
    dove dati è il percorso del file ashx (http://localhost:12345/nomefile.ashx?par1=x&par2=y&par3=z)

    risultato:
    Riferimento a entità non dichiarata: 'nbsp'. Riga 45, posizione 25.

    Descrizione: Eccezione non gestita durante l'esecuzione della richiesta Web corrente. Per ulteriori informazioni sull'errore e sul suo punto di origine nel codice, vedere la traccia dello stack.


    Questo succede perchè il doc.load(fs) legge la pagina di login ....
    W la Ferari effetrenavenave!
    il computer è un somaro veloce! (neanche tanto ndr)

  10. #10
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Bene, ho un sito protetto. Apro una pagina, si presenta la pagina di login, poi posso navigare tutto il giorno, sensa richiesta di credenziali.

    La pagina a1.aspx la richiamo dal browser, e viene letta senza problemi.
    Ma, se nell'evento load metto questo codice:
    codice:
    Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
        Dim s As String = l.GetRemotePage("http://localhost/miosito/a.aspx")
        File.WriteAllText("c:\tmp\prova.htm", s)
    
    End Sub
    Il file letto, non è quello che mi dà la pagina a.aspx, ma è la pagina di login.
    (in c:\tmp\prova.htm c'è l'html della pagina di login)

    Questo credo dipende perchè il browser fa la richiesta spedendo pure il cookie di autenticazione, mentre il mio codice, no)

    Dim s As String = l.GetRemotePage("http://localhost/miosito/a.aspx")
    la pagina a.aspx non sa se è autenticata perchè non riceve nessuna notizia dal chiamante.

    come fare? questo è il problema!
    Pietro

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.