rmaz Posted October 2, 2011 Share Posted October 2, 2011 Bonsoir à tous, Je voudrais interagir avec une application vb.net, mais j'ai un problème lors de l'écriture (POST). Prestashop (en version 1.4.4.1) me renvoie vers une erreur "The remote server returned an error: (500) Internal Server Error." alors que lors que je passe en GET j'arrive parfaitement à interagir avec. Je travail actuellement en local, j'ai soupçonné le serveur WAMP, j'ai donc essayé avec le même programme de dialoguer avec une autre page, et les variables en post fonctionnent parfaitement. J'ai bien sûr autorisé dans mon Prestashop la possibilité d'effectuer des requêtes POST. Voici la fonction qui me permet les requêtes POST en .net : Public 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 Et voici l'appel : Post_request("http://127.0.0.1/prestashop/api/zones/", "name=zonetest", "", Nothing, 0, 30000, "VAXXXBBQAA778TAY79BD1HG5UZM4EK5W", "") Merci d'avance Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now