Jump to content

Recommended Posts

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

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...