Intercepter la réponse HTML...

Signaler
Messages postés
6
Date d'inscription
mercredi 14 avril 2004
Statut
Membre
Dernière intervention
14 avril 2004
-
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
-
Bonjour à tous,

Voilà, je voudrais intercepter la réponse HTML fournie par le serveur en vue de la sauvegarder dans un fichier. Mais, je ne vois pas comment faire. :sad)

Si quelqu'un a des idées, je suis preneur (VB.NET ou c#)

Merci d'avance.

10 réponses

Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
28
Pas tres simple ce que tu demande.

Ce que j'ai comme idée pour l'instant : heriter ta page d'une classe derivant de system.web.ui.page
Exemple :

Public Class Tapage
Inherits MaPagePerso

'Methode de ta page ...

End Class

Public Class MaPagePerso
Inherits System.Web.UI.Page

End Class

ensuite dans la classe mapagePerso surchargé render ou une methode comme celle ci qui enregistra ta page où tu veux.

J'y ai encore pas regardé, je te donne juste des pistes, j'y regarde si j'ai le temps, dis moi si tu comprend ou pas, mais ce que tu veux faire, est loin d'etre simple, et il f aut faire appel à des notions complexe de l'asp.net ....

Bon courage

Cyril (Alias Jesusonline)
Messages postés
6
Date d'inscription
mercredi 14 avril 2004
Statut
Membre
Dernière intervention
14 avril 2004

Je sais que cela n'est pas si simple, c'est pourquoi je poste sur un forum :big)

J'ai déjà essayé sur l'événement PreRender(...) mais cela n'a rien donné :sad) . Ceci dit, je n'ai pas fais 2 pages (une héritant de l'autre), je vais donc voir de ce côté.

En tout cas, merci encore.
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
28
J'ai essayé un petit peu de mon coté mais j'ai encore rien trouvé de positif, j'ai pas beaucoup cherché non plus :-p j'ai aussi regardé s'il n'y avait pas qqchose dans page.response, mais rien de bien utile, ca nous ramene sur des render & co

T'avais mis koi dans le code du prerender ?

Bon courage

Cyril (Alias Jesusonline)
Messages postés
6
Date d'inscription
mercredi 14 avril 2004
Statut
Membre
Dernière intervention
14 avril 2004

Heu, je ne sais plus ce que j'avais mis mais je suis sur une bonne piste : http://longhorn.msdn.microsoft.com/lhsdk/ref/ns/system.web/c/httpresponse/p/filter.aspx
Messages postés
6
Date d'inscription
mercredi 14 avril 2004
Statut
Membre
Dernière intervention
14 avril 2004

OK, ca marche. La piste etait la bonne. Merci de t'être penché sur le problème.
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
28
Je connais pas Filter, tres interessant :

avec ce que tu m'as montré c'était assez simple de faire ce qeu tu demandais, voila ce que j'ai modifié :

' Write is the method that actually does the filtering.
Public Overrides Sub Write(ByVal MyBuffer() As Byte, ByVal offset As Integer, ByVal count As Integer)

Dim SW As New StreamWriter("E:\Serveur\Autre\TestExemple\File.htm")

Dim data(count) As Byte
Buffer.BlockCopy(MyBuffer, offset, data, 0, count)

Dim i As Integer
For i = 0 To count - 1
SW.Write(Convert.ToChar(data(i)))
Next i
_sink.Write(data, 0, count)
SW.Close()

End Sub 'Write

et j'ai mis Response.Filter = New upperCaseFilter(Response.Filter) dans le page_load

J'ai encore pas regardé le code donc je pense qu'on peut facilement améliorer le truc

@+

Cyril (Alias Jesusonline)
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
28
dsl j'avais pas vu ta réponse, tu as fait de la meme maniere que moi ? ou plus optimisé ?

Cyril (Alias Jesusonline)
Messages postés
6
Date d'inscription
mercredi 14 avril 2004
Statut
Membre
Dernière intervention
14 avril 2004

J'ai un peu moins de lignes ;) mais l'idée est la même.

Public Overrides Sub Write(ByVal _Buffer() As Byte, ByVal _offset As Integer, ByVal _count As Integer)

Dim writer As New StreamWriter("c:\\test.htm", false)

writer.Write(System.Text.Encoding.UTF8.GetString(data),0, _count)
writer.Close()
End Sub
Messages postés
6
Date d'inscription
mercredi 14 avril 2004
Statut
Membre
Dernière intervention
14 avril 2004

J'ai un peu moins de lignes ;) mais l'idée est la même.

Public Overrides Sub Write(ByVal _buffer() As Byte, ByVal _offset As Integer, ByVal _count As Integer)

dim data(_count) as Byte
Buffer.BlockCopy(_buffer, _offset, data, 0, _count)

Dim writer As New StreamWriter("c:\\test.htm", false)

writer.Write(System.Text.Encoding.UTF8.GetString(data),0, _count)
writer.Close()
End Sub
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
28
System.Text.Encoding.UTF8.GetString(data) je l'ai cherché mais je me rappellais plus ou etait placé cette méthode ;)

Cyril (Alias Jesusonline)