|
Trouver une ressource
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
REQUETE HTTP GET / POST
Information sur la source
Description
Suite à une question dans le forum qui m'a poussé à ecrire un code que je pensais avoir déja poster ici, je me permet d'ajouter ce simple petit code. J'avais effectivement deja poster la source "requete http via proxy, recuperer la source d'une page html" mais celle ci etait plus destiné à montrer l'interet du proxy et ne s'arretait que sur la methode GET, et le changement de nom serait devenu compliqué, bref, voila mon explication à une eventuelle critique concernant un doublon. Cette fois ci les deux methodes les plus courantes (POST et GET) sont presentées. Update : Gestion des authentification par .htaccess Update 2 : Ajout de la gestion des cookies (pourtant indispensable, où était-elle??), ainsi que des proxy. Les arguments optionels attendus par les deux méthodes devienent nombreux, du fait que celles ci sont extraites d'une classe me simplifiant l'utilisations des requêtes HTTP, dans laquelle j'ai défini de nombreuses surcharges de ces méthodes. J'hesite à mettre cette classe à la place des deux simple méthodes, ce qui augmenterais considérablement le code censé être très simple.
Source
- Private Function Get_request(ByVal url As String, Optional ByVal cookies As String = "", Optional ByVal proxy As String = Nothing, Optional ByVal proxyport As Integer = Nothing, Optional ByVal timeout As Integer = 30000, Optional ByVal login As String = "", Optional ByVal pass As String = "") As String
- Dim reader As IO.StreamReader 'on crée un objet streamreader
- Try
- Dim hwebrequest As System.Net.HttpWebRequest = System.Net.HttpWebRequest.Create(url) 'on crée la requete web
- hwebrequest.Timeout = timeout
- If proxy <> "" Then
- Dim hproxy As WebProxy
- hproxy = New WebProxy(proxy, proxyport)
- WebRequest.DefaultWebProxy = hproxy
- End If
- If login <> "" Then
- Dim hcredential As New System.Net.NetworkCredential(login, pass)
- hwebrequest.Credentials = hcredential
- End If
- If cookies <> "" Then
- hwebrequest.CookieContainer = New CookieContainer
- hwebrequest.CookieContainer.SetCookies(New Uri(url.Substring(0, url.IndexOf("/", 8))), cookies)
- End If
- Dim hwebresponse As System.Net.HttpWebResponse = hwebrequest.GetResponse 'on crée un objet de reponse a notre requete
- reader = New IO.StreamReader(hwebresponse.GetResponseStream) 'on redefini notre streamreader avec la reponse à la requete en argument
- Dim res As String = ""
- res = reader.ReadToEnd() 'on renvoie l'ensemble du resultat
- reader.Close() 'on ferme l'objet
- hwebresponse.Close()
- Return res
- Catch ex As Exception
- Return ex.ToString
- End Try
- End Function
-
- Private Function Post_request(ByVal url As String, ByVal data As String, Optional ByVal cookies As String = "", Optional ByVal proxy As String = Nothing, Optional ByVal proxyport As Integer = Nothing, Optional ByVal timeout As Integer = 30000, Optional ByVal login As String = "", Optional ByVal pass As String = "") As String
- Dim reader As IO.StreamReader
- Dim writer As IO.StreamWriter
- Dim res As String = ""
- Try
- Dim hwebrequest As System.Net.HttpWebRequest = System.Net.HttpWebRequest.Create(url) ' on crée la requete web à partir de l'url
- If proxy <> "" Then
- Dim hproxy As WebProxy
- hproxy = New WebProxy(proxy, proxyport)
- WebRequest.DefaultWebProxy = hproxy
- End If
- If login <> "" Then
- Dim hcredential As New System.Net.NetworkCredential(login, pass)
- hwebrequest.Credentials = hcredential
- End If
- If cookies <> "" Then
- hwebrequest.CookieContainer = New CookieContainer
- hwebrequest.CookieContainer.SetCookies(New Uri(url.Substring(0, url.IndexOf("/", 8))), cookies)
- End If
- hwebrequest.Method = "POST" 'on defini la methode à utiliser
- hwebrequest.ContentType = "application/x-www-form-urlencoded" 'on defini le type de contenu de la requete
- hwebrequest.ContentLength = data.Length 'on defini la taille des données à envoyé
- writer = New IO.StreamWriter(hwebrequest.GetRequestStream) 'on crée un objet streamwriter qui va nous permettre d'envoyer nos données
- writer.Write(data) 'on ecrit les données
- writer.Close() 'on ferme l'objet streamwriter
- Dim hwebresponse As System.Net.HttpWebResponse = hwebrequest.GetResponse 'on crée un objet de reponse a notre requete
- reader = New IO.StreamReader(hwebresponse.GetResponseStream) 'on redefini notre streamreader avec la reponse à la requete en argument
- res = reader.ReadToEnd() 'on renvoie l'ensemble du resultat
- reader.Close() 'on ferme l'objet
- Return res
- Catch ex As Exception
- Return ex.Message.ToString
- End Try
- End Function
Private Function Get_request(ByVal url As String, Optional ByVal cookies As String = "", Optional ByVal proxy As String = Nothing, Optional ByVal proxyport As Integer = Nothing, Optional ByVal timeout As Integer = 30000, Optional ByVal login As String = "", Optional ByVal pass As String = "") As String
Dim reader As IO.StreamReader 'on crée un objet streamreader
Try
Dim hwebrequest As System.Net.HttpWebRequest = System.Net.HttpWebRequest.Create(url) 'on crée la requete web
hwebrequest.Timeout = timeout
If proxy <> "" Then
Dim hproxy As WebProxy
hproxy = New WebProxy(proxy, proxyport)
WebRequest.DefaultWebProxy = hproxy
End If
If login <> "" Then
Dim hcredential As New System.Net.NetworkCredential(login, pass)
hwebrequest.Credentials = hcredential
End If
If cookies <> "" Then
hwebrequest.CookieContainer = New CookieContainer
hwebrequest.CookieContainer.SetCookies(New Uri(url.Substring(0, url.IndexOf("/", 8))), cookies)
End If
Dim hwebresponse As System.Net.HttpWebResponse = hwebrequest.GetResponse 'on crée un objet de reponse a notre requete
reader = New IO.StreamReader(hwebresponse.GetResponseStream) 'on redefini notre streamreader avec la reponse à la requete en argument
Dim res As String = ""
res = reader.ReadToEnd() 'on renvoie l'ensemble du resultat
reader.Close() 'on ferme l'objet
hwebresponse.Close()
Return res
Catch ex As Exception
Return ex.ToString
End Try
End Function
Private Function Post_request(ByVal url As String, ByVal data As String, Optional ByVal cookies As String = "", Optional ByVal proxy As String = Nothing, Optional ByVal proxyport As Integer = Nothing, Optional ByVal timeout As Integer = 30000, Optional ByVal login As String = "", Optional ByVal pass As String = "") As String
Dim reader As IO.StreamReader
Dim writer As IO.StreamWriter
Dim res As String = ""
Try
Dim hwebrequest As System.Net.HttpWebRequest = System.Net.HttpWebRequest.Create(url) ' on crée la requete web à partir de l'url
If proxy <> "" Then
Dim hproxy As WebProxy
hproxy = New WebProxy(proxy, proxyport)
WebRequest.DefaultWebProxy = hproxy
End If
If login <> "" Then
Dim hcredential As New System.Net.NetworkCredential(login, pass)
hwebrequest.Credentials = hcredential
End If
If cookies <> "" Then
hwebrequest.CookieContainer = New CookieContainer
hwebrequest.CookieContainer.SetCookies(New Uri(url.Substring(0, url.IndexOf("/", 8))), cookies)
End If
hwebrequest.Method = "POST" 'on defini la methode à utiliser
hwebrequest.ContentType = "application/x-www-form-urlencoded" 'on defini le type de contenu de la requete
hwebrequest.ContentLength = data.Length 'on defini la taille des données à envoyé
writer = New IO.StreamWriter(hwebrequest.GetRequestStream) 'on crée un objet streamwriter qui va nous permettre d'envoyer nos données
writer.Write(data) 'on ecrit les données
writer.Close() 'on ferme l'objet streamwriter
Dim hwebresponse As System.Net.HttpWebResponse = hwebrequest.GetResponse 'on crée un objet de reponse a notre requete
reader = New IO.StreamReader(hwebresponse.GetResponseStream) 'on redefini notre streamreader avec la reponse à la requete en argument
res = reader.ReadToEnd() 'on renvoie l'ensemble du resultat
reader.Close() 'on ferme l'objet
Return res
Catch ex As Exception
Return ex.Message.ToString
End Try
End Function
Conclusion
ammeliorations? 'suis preneur.
Historique
- 13 mars 2006 01:25:33 :
- j'avais oublié d'enlever des arguments non utilisés dans la fonction get...
- 11 février 2007 16:38:11 :
- Merci à NeverDie pour l'information concernant l'authentification, qui me semblait optionnel à l'epoque, mais qui m'est aujourd'hui indispensable pour mon projet professionel. ^^
- 19 juillet 2007 01:10:27 :
- Ajout de la gestion des cookies, ainsi que des proxy.
Sources du même auteur
Sources de la même categorie
Sources en rapport avec celle ci
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
ACCESS et INTERNET (HTTP POST/GET) [ par SqUaB ]
Bonjour,Je suis à la recherche d'un moyen qui, depuis Access, me permettrait de faire des accès sur le WEB (HTTP/GET HTTP/POST). J'ai lu sur le forum
Comment Faire une requete HTTP Post ? [ par Cyberdevil ]
HI !EN faite ayant bcp de donnée a envoyer a un site je ne peut pas faire un simple GET (machin.htm?xx=rer etc...) donc je doit foutre les données dan
Requete HTTP : POST [ par vbguigui ]
Bonjour,J'aimerais avoir un programme qui créé et envoie une requete POST avec des données post. Y a-t-il quelqu'un qui sait le faire et le poster svp
serveur Http et get/post [ par smasher81 ]
Allo, je cherche depuis quelques temps seulement la façon de receillir un get ou un post d'une page sur mon serveur.. tout simple la.. Pourrais-tu m'a
SQL Serveur et HTTP POST REQUEST [ par OneHacker ]
Bon je repose mes questions car j'ai toujours pas de réponse depuis des mois, donc première question.Où trouver un installateur Microsoft SQL 2005 qui
Requete HTTP [ par JALEO WAHRANI ]
Salut,Je vous envoie ce post en car j'aurai besoin d'aide:Je dois depuis une appli VB envoyer des paramètres à une page Web par la méthode POST. Pour
Interconnection PHP (post Get...) [ par ABF ]
Bonjour, J'aimerais faire appel à une page php et recupérer le contenu. Comment faire appel à la page avec des parametres et ce sans le controle bro
lOGIN EN PHP [POST] [ par Tanner47 ]
Bonjour, pourriez vous m'aider, j'aimerai me connecter sur ce site via POST sous vb6 http://s9.gladiatus.fr/game/index.php?=mod=loginj'ai essayer sa m
If requete du type http://127.0.0.1:port alors ... [ par Loozerteam ]
Bonsoir la communauté,après une multitude de recherches, je chercherais une solution qui me permettrait d'exécuter une suite d'évènement si une requèt
HTTP Request: Prendre le SID (cookie) [ par Joke758 ]
Bonjour,J'utilise winhttp.winhttprequest.5.1 pour me logger sur un site et prendre le SID (le cookie).Avec l'outils En-têtes HTTP en direct de Firefox
|
Téléchargements
Logiciels à télécharger sur le même thème :
Comparez les prix Nouvelle version
|