j'ai une windowsform avec un bouton et un contrôle richtextbox pour
récupérer le contenu de la page web intérrogée.
Quand je lance l'exécution j'ai un message de retour : Le serveur distant a
etourné une erreur : (401)Non autorisé.
Or dans le code vb de mon form1 si je clique sur l'adresse http://...... qui
apparait soulignée (le curseur se transforme en une main si je la survole)
j'obtiens bien le contenu de la réponse du serveur (un tableau d'infos).
De même si je recopie directement l'adresse dans internetexplorer tout se
passe bien je récupère aussi le tableau.
Donc je voudrais savoir ce qui provoque ce message d'erreur, il n'y a pas de
problème de login ou de mot de passe car comme je l'ai dit en tapant
directement l'adresse on obtient la réponse.
J'ai essayé avec l'adresse d'un site web quelconque et cela fonctionne
parfaitement.
Je pense qu'il y a un paramètre dans la webrequest à mettre mais lequel ou
comment en mode pas à pas savoir ce qui ne va pas ?
J'ai regardé et c'est le HttpWRequest.GetResponse qui renvoie ce message.
Voici mon code
Option Strict On
Imports System.Net
Imports System.IO
Public Class InterrogationServeurWeb
Inherits System.Windows.Forms.Form
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
Dim HttpWResponse As HttpWebResponse = Nothing
Dim sr As StreamReader = Nothing
Dim adresse As String =
"http://xx.xx.xx.xx/4DACTION/xls_calc_listingabs/site=13&plateau=130356&date1=07/08/2006&date2=07/08/2006&agence=0&salarie=0&version=10&pop=NINT&col=04,05,06,07,08,10,11,13,18,&sel=abs"
'xx.xx.xx.xx est l'adresse du serveur
Try
Dim HttpWRequest As HttpWebRequest =
CType(WebRequest.Create(adresse), HttpWebRequest)
HttpWResponse = CType(HttpWRequest.GetResponse, HttpWebResponse)
sr = New StreamReader(HttpWResponse.GetResponseStream)
RichTextBox1.Text = sr.ReadToEnd
Catch ex As Exception
MessageBox.Show(ex.Message)
Finally
If Not (HttpWResponse Is Nothing) Then
HttpWResponse.Close()
End If
If Not (sr Is Nothing) Then
sr.Close()
End If
End Try
End Sub
End Class
je travaille en vb dotnet 2003 sur une application windowsform.
Merci d'avance à tous ceux qui pourront m'aider.
Cordialement
Prady92
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Millox Frédéric
Bonjour,
Je n'ai pas trop le temps de regarder ton bout de code mais par contre j'ai une petite fonction qui doit faire ce que tu demandes.
Public Function GetHTTPFile(ByVal sURL As String, ByVal sFileName As String) As Boolean Dim webreq As System.Net.HttpWebRequest = CType(System.Net.WebRequest.Create(sURL), System.Net.HttpWebRequest), _ webres As System.Net.WebResponse, _ oReader As System.IO.Stream, _ oFile As System.IO.Stream, _ b As Integer
Try webres = webreq.GetResponse()
oReader = webres.GetResponseStream() oFile = New System.IO.FileStream(sFileName, System.IO.FileMode.OpenOrCreate, System.IO.FileAccess.ReadWrite, System.IO.FileShare.None)
While True b = oReader.ReadByte If b = -1 Then Exit While oFile.WriteByte(Convert.ToByte(b)) End While
oReader.Close() oFile.Close()
Return True Catch ex As Exception If Not oReader Is Nothing Then oReader.Close() If Not oFile Is Nothing Then oFile.Close() End Try
Return False End Function
A+
-- fmillox
"prady92" a écrit :
Bonjour,
j'ai une windowsform avec un bouton et un contrôle richtextbox pour récupérer le contenu de la page web intérrogée. Quand je lance l'exécution j'ai un message de retour : Le serveur distant a etourné une erreur : (401)Non autorisé. Or dans le code vb de mon form1 si je clique sur l'adresse http://...... qui apparait soulignée (le curseur se transforme en une main si je la survole) j'obtiens bien le contenu de la réponse du serveur (un tableau d'infos). De même si je recopie directement l'adresse dans internetexplorer tout se passe bien je récupère aussi le tableau.
Donc je voudrais savoir ce qui provoque ce message d'erreur, il n'y a pas de problème de login ou de mot de passe car comme je l'ai dit en tapant directement l'adresse on obtient la réponse. J'ai essayé avec l'adresse d'un site web quelconque et cela fonctionne parfaitement. Je pense qu'il y a un paramètre dans la webrequest à mettre mais lequel ou comment en mode pas à pas savoir ce qui ne va pas ? J'ai regardé et c'est le HttpWRequest.GetResponse qui renvoie ce message.
Voici mon code
Option Strict On Imports System.Net Imports System.IO
Public Class InterrogationServeurWeb Inherits System.Windows.Forms.Form
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim HttpWResponse As HttpWebResponse = Nothing Dim sr As StreamReader = Nothing Dim adresse As String = "http://xx.xx.xx.xx/4DACTION/xls_calc_listingabs/site&plateau0356&date1/08/2006&date2/08/2006&agence=0&salarie=0&version&pop=NINT&col,05,06,07,08,10,11,13,18,&sel«s" 'xx.xx.xx.xx est l'adresse du serveur Try Dim HttpWRequest As HttpWebRequest = CType(WebRequest.Create(adresse), HttpWebRequest) HttpWResponse = CType(HttpWRequest.GetResponse, HttpWebResponse) sr = New StreamReader(HttpWResponse.GetResponseStream) RichTextBox1.Text = sr.ReadToEnd Catch ex As Exception MessageBox.Show(ex.Message) Finally If Not (HttpWResponse Is Nothing) Then HttpWResponse.Close() End If If Not (sr Is Nothing) Then sr.Close() End If End Try
End Sub
End Class
je travaille en vb dotnet 2003 sur une application windowsform.
Merci d'avance à tous ceux qui pourront m'aider. Cordialement Prady92
Bonjour,
Je n'ai pas trop le temps de regarder ton bout de code mais par contre j'ai
une petite fonction qui doit faire ce que tu demandes.
Public Function GetHTTPFile(ByVal sURL As String, ByVal sFileName As String)
As Boolean
Dim webreq As System.Net.HttpWebRequest =
CType(System.Net.WebRequest.Create(sURL), System.Net.HttpWebRequest), _
webres As System.Net.WebResponse, _
oReader As System.IO.Stream, _
oFile As System.IO.Stream, _
b As Integer
Try
webres = webreq.GetResponse()
oReader = webres.GetResponseStream()
oFile = New System.IO.FileStream(sFileName,
System.IO.FileMode.OpenOrCreate, System.IO.FileAccess.ReadWrite,
System.IO.FileShare.None)
While True
b = oReader.ReadByte
If b = -1 Then Exit While
oFile.WriteByte(Convert.ToByte(b))
End While
oReader.Close()
oFile.Close()
Return True
Catch ex As Exception
If Not oReader Is Nothing Then oReader.Close()
If Not oFile Is Nothing Then oFile.Close()
End Try
Return False
End Function
A+
--
fmillox
"prady92" a écrit :
Bonjour,
j'ai une windowsform avec un bouton et un contrôle richtextbox pour
récupérer le contenu de la page web intérrogée.
Quand je lance l'exécution j'ai un message de retour : Le serveur distant a
etourné une erreur : (401)Non autorisé.
Or dans le code vb de mon form1 si je clique sur l'adresse http://...... qui
apparait soulignée (le curseur se transforme en une main si je la survole)
j'obtiens bien le contenu de la réponse du serveur (un tableau d'infos).
De même si je recopie directement l'adresse dans internetexplorer tout se
passe bien je récupère aussi le tableau.
Donc je voudrais savoir ce qui provoque ce message d'erreur, il n'y a pas de
problème de login ou de mot de passe car comme je l'ai dit en tapant
directement l'adresse on obtient la réponse.
J'ai essayé avec l'adresse d'un site web quelconque et cela fonctionne
parfaitement.
Je pense qu'il y a un paramètre dans la webrequest à mettre mais lequel ou
comment en mode pas à pas savoir ce qui ne va pas ?
J'ai regardé et c'est le HttpWRequest.GetResponse qui renvoie ce message.
Voici mon code
Option Strict On
Imports System.Net
Imports System.IO
Public Class InterrogationServeurWeb
Inherits System.Windows.Forms.Form
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
Dim HttpWResponse As HttpWebResponse = Nothing
Dim sr As StreamReader = Nothing
Dim adresse As String =
"http://xx.xx.xx.xx/4DACTION/xls_calc_listingabs/site&plateau0356&date1/08/2006&date2/08/2006&agence=0&salarie=0&version&pop=NINT&col,05,06,07,08,10,11,13,18,&sel«s"
'xx.xx.xx.xx est l'adresse du serveur
Try
Dim HttpWRequest As HttpWebRequest =
CType(WebRequest.Create(adresse), HttpWebRequest)
HttpWResponse = CType(HttpWRequest.GetResponse, HttpWebResponse)
sr = New StreamReader(HttpWResponse.GetResponseStream)
RichTextBox1.Text = sr.ReadToEnd
Catch ex As Exception
MessageBox.Show(ex.Message)
Finally
If Not (HttpWResponse Is Nothing) Then
HttpWResponse.Close()
End If
If Not (sr Is Nothing) Then
sr.Close()
End If
End Try
End Sub
End Class
je travaille en vb dotnet 2003 sur une application windowsform.
Merci d'avance à tous ceux qui pourront m'aider.
Cordialement
Prady92
Je n'ai pas trop le temps de regarder ton bout de code mais par contre j'ai une petite fonction qui doit faire ce que tu demandes.
Public Function GetHTTPFile(ByVal sURL As String, ByVal sFileName As String) As Boolean Dim webreq As System.Net.HttpWebRequest = CType(System.Net.WebRequest.Create(sURL), System.Net.HttpWebRequest), _ webres As System.Net.WebResponse, _ oReader As System.IO.Stream, _ oFile As System.IO.Stream, _ b As Integer
Try webres = webreq.GetResponse()
oReader = webres.GetResponseStream() oFile = New System.IO.FileStream(sFileName, System.IO.FileMode.OpenOrCreate, System.IO.FileAccess.ReadWrite, System.IO.FileShare.None)
While True b = oReader.ReadByte If b = -1 Then Exit While oFile.WriteByte(Convert.ToByte(b)) End While
oReader.Close() oFile.Close()
Return True Catch ex As Exception If Not oReader Is Nothing Then oReader.Close() If Not oFile Is Nothing Then oFile.Close() End Try
Return False End Function
A+
-- fmillox
"prady92" a écrit :
Bonjour,
j'ai une windowsform avec un bouton et un contrôle richtextbox pour récupérer le contenu de la page web intérrogée. Quand je lance l'exécution j'ai un message de retour : Le serveur distant a etourné une erreur : (401)Non autorisé. Or dans le code vb de mon form1 si je clique sur l'adresse http://...... qui apparait soulignée (le curseur se transforme en une main si je la survole) j'obtiens bien le contenu de la réponse du serveur (un tableau d'infos). De même si je recopie directement l'adresse dans internetexplorer tout se passe bien je récupère aussi le tableau.
Donc je voudrais savoir ce qui provoque ce message d'erreur, il n'y a pas de problème de login ou de mot de passe car comme je l'ai dit en tapant directement l'adresse on obtient la réponse. J'ai essayé avec l'adresse d'un site web quelconque et cela fonctionne parfaitement. Je pense qu'il y a un paramètre dans la webrequest à mettre mais lequel ou comment en mode pas à pas savoir ce qui ne va pas ? J'ai regardé et c'est le HttpWRequest.GetResponse qui renvoie ce message.
Voici mon code
Option Strict On Imports System.Net Imports System.IO
Public Class InterrogationServeurWeb Inherits System.Windows.Forms.Form
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim HttpWResponse As HttpWebResponse = Nothing Dim sr As StreamReader = Nothing Dim adresse As String = "http://xx.xx.xx.xx/4DACTION/xls_calc_listingabs/site&plateau0356&date1/08/2006&date2/08/2006&agence=0&salarie=0&version&pop=NINT&col,05,06,07,08,10,11,13,18,&sel«s" 'xx.xx.xx.xx est l'adresse du serveur Try Dim HttpWRequest As HttpWebRequest = CType(WebRequest.Create(adresse), HttpWebRequest) HttpWResponse = CType(HttpWRequest.GetResponse, HttpWebResponse) sr = New StreamReader(HttpWResponse.GetResponseStream) RichTextBox1.Text = sr.ReadToEnd Catch ex As Exception MessageBox.Show(ex.Message) Finally If Not (HttpWResponse Is Nothing) Then HttpWResponse.Close() End If If Not (sr Is Nothing) Then sr.Close() End If End Try
End Sub
End Class
je travaille en vb dotnet 2003 sur une application windowsform.
Merci d'avance à tous ceux qui pourront m'aider. Cordialement Prady92
prady92
Merci pour ce bout de code que j'ai modifié en : Public Function GetHTTPFile(ByVal sURL As String, ByVal sFileName As String, Optional ByVal sLogin As String = "", Optional ByVal sMdp As String = "") As Boolean Dim Webrequete As HttpWebRequest = CType(Webrequete.Create(sURL), HttpWebRequest), _ Webreponse As WebResponse, oReader As Stream, oFile As Stream, b As Integer Dim Authentification As New NetworkCredential(sLogin, sMdp)
oReader = Webreponse.GetResponseStream() oFile = New System.IO.FileStream(sFileName, FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.None)
While True b = oReader.ReadByte If b = -1 Then Exit While oFile.WriteByte(Convert.ToByte(b)) End While
oReader.Close() oFile.Close()
Return True Catch ex As Exception MessageBox.Show(ex.Message) Finally If Not (Webreponse Is Nothing) Then Webreponse.Close() If Not (oReader Is Nothing) Then oReader.Close() If Not (oFile Is Nothing) Then oFile.Close() End Try
Return False End Function
et encore merci
"Millox Frédéric" a écrit :
Bonjour,
Je n'ai pas trop le temps de regarder ton bout de code mais par contre j'ai une petite fonction qui doit faire ce que tu demandes.
Public Function GetHTTPFile(ByVal sURL As String, ByVal sFileName As String) As Boolean Dim webreq As System.Net.HttpWebRequest = CType(System.Net.WebRequest.Create(sURL), System.Net.HttpWebRequest), _ webres As System.Net.WebResponse, _ oReader As System.IO.Stream, _ oFile As System.IO.Stream, _ b As Integer
Try webres = webreq.GetResponse()
oReader = webres.GetResponseStream() oFile = New System.IO.FileStream(sFileName, System.IO.FileMode.OpenOrCreate, System.IO.FileAccess.ReadWrite, System.IO.FileShare.None)
While True b = oReader.ReadByte If b = -1 Then Exit While oFile.WriteByte(Convert.ToByte(b)) End While
oReader.Close() oFile.Close()
Return True Catch ex As Exception If Not oReader Is Nothing Then oReader.Close() If Not oFile Is Nothing Then oFile.Close() End Try
Return False End Function
A+
-- fmillox
"prady92" a écrit :
> Bonjour, > > j'ai une windowsform avec un bouton et un contrôle richtextbox pour > récupérer le contenu de la page web intérrogée. > Quand je lance l'exécution j'ai un message de retour : Le serveur distant a > etourné une erreur : (401)Non autorisé. > Or dans le code vb de mon form1 si je clique sur l'adresse http://...... qui > apparait soulignée (le curseur se transforme en une main si je la survole) > j'obtiens bien le contenu de la réponse du serveur (un tableau d'infos). > De même si je recopie directement l'adresse dans internetexplorer tout se > passe bien je récupère aussi le tableau. > > Donc je voudrais savoir ce qui provoque ce message d'erreur, il n'y a pas de > problème de login ou de mot de passe car comme je l'ai dit en tapant > directement l'adresse on obtient la réponse. > J'ai essayé avec l'adresse d'un site web quelconque et cela fonctionne > parfaitement. > Je pense qu'il y a un paramètre dans la webrequest à mettre mais lequel ou > comment en mode pas à pas savoir ce qui ne va pas ? > J'ai regardé et c'est le HttpWRequest.GetResponse qui renvoie ce message. > > Voici mon code > > Option Strict On > Imports System.Net > Imports System.IO > > Public Class InterrogationServeurWeb > Inherits System.Windows.Forms.Form > > Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As > System.EventArgs) Handles Button1.Click > > Dim HttpWResponse As HttpWebResponse = Nothing > Dim sr As StreamReader = Nothing > Dim adresse As String = > "http://xx.xx.xx.xx/4DACTION/xls_calc_listingabs/site&plateau0356&date1/08/2006&date2/08/2006&agence=0&salarie=0&version&pop=NINT&col,05,06,07,08,10,11,13,18,&sel«s" > 'xx.xx.xx.xx est l'adresse du serveur > Try > Dim HttpWRequest As HttpWebRequest = > CType(WebRequest.Create(adresse), HttpWebRequest) > HttpWResponse = CType(HttpWRequest.GetResponse, HttpWebResponse) > sr = New StreamReader(HttpWResponse.GetResponseStream) > RichTextBox1.Text = sr.ReadToEnd > Catch ex As Exception > MessageBox.Show(ex.Message) > Finally > If Not (HttpWResponse Is Nothing) Then > HttpWResponse.Close() > End If > If Not (sr Is Nothing) Then > sr.Close() > End If > End Try > > End Sub > > End Class > > je travaille en vb dotnet 2003 sur une application windowsform. > > Merci d'avance à tous ceux qui pourront m'aider. > Cordialement > Prady92 >
Merci pour ce bout de code que j'ai modifié en :
Public Function GetHTTPFile(ByVal sURL As String, ByVal sFileName As String,
Optional ByVal sLogin As String = "", Optional ByVal sMdp As String = "") As
Boolean
Dim Webrequete As HttpWebRequest = CType(Webrequete.Create(sURL),
HttpWebRequest), _
Webreponse As WebResponse, oReader As Stream, oFile As Stream, b
As Integer
Dim Authentification As New NetworkCredential(sLogin, sMdp)
oReader = Webreponse.GetResponseStream()
oFile = New System.IO.FileStream(sFileName,
FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.None)
While True
b = oReader.ReadByte
If b = -1 Then Exit While
oFile.WriteByte(Convert.ToByte(b))
End While
oReader.Close()
oFile.Close()
Return True
Catch ex As Exception
MessageBox.Show(ex.Message)
Finally
If Not (Webreponse Is Nothing) Then Webreponse.Close()
If Not (oReader Is Nothing) Then oReader.Close()
If Not (oFile Is Nothing) Then oFile.Close()
End Try
Return False
End Function
et encore merci
"Millox Frédéric" a écrit :
Bonjour,
Je n'ai pas trop le temps de regarder ton bout de code mais par contre j'ai
une petite fonction qui doit faire ce que tu demandes.
Public Function GetHTTPFile(ByVal sURL As String, ByVal sFileName As String)
As Boolean
Dim webreq As System.Net.HttpWebRequest =
CType(System.Net.WebRequest.Create(sURL), System.Net.HttpWebRequest), _
webres As System.Net.WebResponse, _
oReader As System.IO.Stream, _
oFile As System.IO.Stream, _
b As Integer
Try
webres = webreq.GetResponse()
oReader = webres.GetResponseStream()
oFile = New System.IO.FileStream(sFileName,
System.IO.FileMode.OpenOrCreate, System.IO.FileAccess.ReadWrite,
System.IO.FileShare.None)
While True
b = oReader.ReadByte
If b = -1 Then Exit While
oFile.WriteByte(Convert.ToByte(b))
End While
oReader.Close()
oFile.Close()
Return True
Catch ex As Exception
If Not oReader Is Nothing Then oReader.Close()
If Not oFile Is Nothing Then oFile.Close()
End Try
Return False
End Function
A+
--
fmillox
"prady92" a écrit :
> Bonjour,
>
> j'ai une windowsform avec un bouton et un contrôle richtextbox pour
> récupérer le contenu de la page web intérrogée.
> Quand je lance l'exécution j'ai un message de retour : Le serveur distant a
> etourné une erreur : (401)Non autorisé.
> Or dans le code vb de mon form1 si je clique sur l'adresse http://...... qui
> apparait soulignée (le curseur se transforme en une main si je la survole)
> j'obtiens bien le contenu de la réponse du serveur (un tableau d'infos).
> De même si je recopie directement l'adresse dans internetexplorer tout se
> passe bien je récupère aussi le tableau.
>
> Donc je voudrais savoir ce qui provoque ce message d'erreur, il n'y a pas de
> problème de login ou de mot de passe car comme je l'ai dit en tapant
> directement l'adresse on obtient la réponse.
> J'ai essayé avec l'adresse d'un site web quelconque et cela fonctionne
> parfaitement.
> Je pense qu'il y a un paramètre dans la webrequest à mettre mais lequel ou
> comment en mode pas à pas savoir ce qui ne va pas ?
> J'ai regardé et c'est le HttpWRequest.GetResponse qui renvoie ce message.
>
> Voici mon code
>
> Option Strict On
> Imports System.Net
> Imports System.IO
>
> Public Class InterrogationServeurWeb
> Inherits System.Windows.Forms.Form
>
> Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
> System.EventArgs) Handles Button1.Click
>
> Dim HttpWResponse As HttpWebResponse = Nothing
> Dim sr As StreamReader = Nothing
> Dim adresse As String =
> "http://xx.xx.xx.xx/4DACTION/xls_calc_listingabs/site&plateau0356&date1/08/2006&date2/08/2006&agence=0&salarie=0&version&pop=NINT&col,05,06,07,08,10,11,13,18,&sel«s"
> 'xx.xx.xx.xx est l'adresse du serveur
> Try
> Dim HttpWRequest As HttpWebRequest =
> CType(WebRequest.Create(adresse), HttpWebRequest)
> HttpWResponse = CType(HttpWRequest.GetResponse, HttpWebResponse)
> sr = New StreamReader(HttpWResponse.GetResponseStream)
> RichTextBox1.Text = sr.ReadToEnd
> Catch ex As Exception
> MessageBox.Show(ex.Message)
> Finally
> If Not (HttpWResponse Is Nothing) Then
> HttpWResponse.Close()
> End If
> If Not (sr Is Nothing) Then
> sr.Close()
> End If
> End Try
>
> End Sub
>
> End Class
>
> je travaille en vb dotnet 2003 sur une application windowsform.
>
> Merci d'avance à tous ceux qui pourront m'aider.
> Cordialement
> Prady92
>
Merci pour ce bout de code que j'ai modifié en : Public Function GetHTTPFile(ByVal sURL As String, ByVal sFileName As String, Optional ByVal sLogin As String = "", Optional ByVal sMdp As String = "") As Boolean Dim Webrequete As HttpWebRequest = CType(Webrequete.Create(sURL), HttpWebRequest), _ Webreponse As WebResponse, oReader As Stream, oFile As Stream, b As Integer Dim Authentification As New NetworkCredential(sLogin, sMdp)
oReader = Webreponse.GetResponseStream() oFile = New System.IO.FileStream(sFileName, FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.None)
While True b = oReader.ReadByte If b = -1 Then Exit While oFile.WriteByte(Convert.ToByte(b)) End While
oReader.Close() oFile.Close()
Return True Catch ex As Exception MessageBox.Show(ex.Message) Finally If Not (Webreponse Is Nothing) Then Webreponse.Close() If Not (oReader Is Nothing) Then oReader.Close() If Not (oFile Is Nothing) Then oFile.Close() End Try
Return False End Function
et encore merci
"Millox Frédéric" a écrit :
Bonjour,
Je n'ai pas trop le temps de regarder ton bout de code mais par contre j'ai une petite fonction qui doit faire ce que tu demandes.
Public Function GetHTTPFile(ByVal sURL As String, ByVal sFileName As String) As Boolean Dim webreq As System.Net.HttpWebRequest = CType(System.Net.WebRequest.Create(sURL), System.Net.HttpWebRequest), _ webres As System.Net.WebResponse, _ oReader As System.IO.Stream, _ oFile As System.IO.Stream, _ b As Integer
Try webres = webreq.GetResponse()
oReader = webres.GetResponseStream() oFile = New System.IO.FileStream(sFileName, System.IO.FileMode.OpenOrCreate, System.IO.FileAccess.ReadWrite, System.IO.FileShare.None)
While True b = oReader.ReadByte If b = -1 Then Exit While oFile.WriteByte(Convert.ToByte(b)) End While
oReader.Close() oFile.Close()
Return True Catch ex As Exception If Not oReader Is Nothing Then oReader.Close() If Not oFile Is Nothing Then oFile.Close() End Try
Return False End Function
A+
-- fmillox
"prady92" a écrit :
> Bonjour, > > j'ai une windowsform avec un bouton et un contrôle richtextbox pour > récupérer le contenu de la page web intérrogée. > Quand je lance l'exécution j'ai un message de retour : Le serveur distant a > etourné une erreur : (401)Non autorisé. > Or dans le code vb de mon form1 si je clique sur l'adresse http://...... qui > apparait soulignée (le curseur se transforme en une main si je la survole) > j'obtiens bien le contenu de la réponse du serveur (un tableau d'infos). > De même si je recopie directement l'adresse dans internetexplorer tout se > passe bien je récupère aussi le tableau. > > Donc je voudrais savoir ce qui provoque ce message d'erreur, il n'y a pas de > problème de login ou de mot de passe car comme je l'ai dit en tapant > directement l'adresse on obtient la réponse. > J'ai essayé avec l'adresse d'un site web quelconque et cela fonctionne > parfaitement. > Je pense qu'il y a un paramètre dans la webrequest à mettre mais lequel ou > comment en mode pas à pas savoir ce qui ne va pas ? > J'ai regardé et c'est le HttpWRequest.GetResponse qui renvoie ce message. > > Voici mon code > > Option Strict On > Imports System.Net > Imports System.IO > > Public Class InterrogationServeurWeb > Inherits System.Windows.Forms.Form > > Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As > System.EventArgs) Handles Button1.Click > > Dim HttpWResponse As HttpWebResponse = Nothing > Dim sr As StreamReader = Nothing > Dim adresse As String = > "http://xx.xx.xx.xx/4DACTION/xls_calc_listingabs/site&plateau0356&date1/08/2006&date2/08/2006&agence=0&salarie=0&version&pop=NINT&col,05,06,07,08,10,11,13,18,&sel«s" > 'xx.xx.xx.xx est l'adresse du serveur > Try > Dim HttpWRequest As HttpWebRequest = > CType(WebRequest.Create(adresse), HttpWebRequest) > HttpWResponse = CType(HttpWRequest.GetResponse, HttpWebResponse) > sr = New StreamReader(HttpWResponse.GetResponseStream) > RichTextBox1.Text = sr.ReadToEnd > Catch ex As Exception > MessageBox.Show(ex.Message) > Finally > If Not (HttpWResponse Is Nothing) Then > HttpWResponse.Close() > End If > If Not (sr Is Nothing) Then > sr.Close() > End If > End Try > > End Sub > > End Class > > je travaille en vb dotnet 2003 sur une application windowsform. > > Merci d'avance à tous ceux qui pourront m'aider. > Cordialement > Prady92 >