OVH Cloud OVH Cloud

XML et HttpWebRequest

7 réponses
Avatar
**Pierre**
Bonjour,

Je dois envoyer un fichier XML à une URL tel que
https://test.e-galexis.com/testPOS/

et obtenir la réponse. Pouvez-vous m'aider ?

D'avance merci.


--
Pierre

7 réponses

Avatar
Patrice
Voir System.Net.WebClient. Je pense en particulier à la méthode
UpLoadFile...

--
Patrice

"**Pierre**" a écrit dans le message de
news:
Bonjour,

Je dois envoyer un fichier XML à une URL tel que
https://test.e-galexis.com/testPOS/

et obtenir la réponse. Pouvez-vous m'aider ?

D'avance merci.


--
Pierre




Avatar
**Pierre**
Non, je ne pense pas que ca fonctionne avec Upload. Quelle est la méthode
équivanete en VB.NET de
DataOutputStream out = new
DataOutputStream(httpConnection.getOutputStream()); (Java)


--
Pierre
"Patrice" a écrit dans le message de
news:
Voir System.Net.WebClient. Je pense en particulier à la méthode
UpLoadFile...

--
Patrice

"**Pierre**" a écrit dans le message de
news:
> Bonjour,
>
> Je dois envoyer un fichier XML à une URL tel que
> https://test.e-galexis.com/testPOS/
>
> et obtenir la réponse. Pouvez-vous m'aider ?
>
> D'avance merci.
>
>
> --
> Pierre
>
>




Avatar
Patrice
C'est bien un Upload à la norme RFC qui va bien (en gros ce que tu ferais
avec une balise input type=file) ? Si oui, je persiste :
http://msdn.microsoft.com/library/fre/default.asp?url=/library/FRE/cpref/html/frlrfSystemNetWebClientClassUploadFileTopic.asp

Sinon si tu dois ou si veux gérer tous les détails :
http://msdn.microsoft.com/library/fre/default.asp?url=/library/FRE/cpref/html/frlrfSystemNetHttpWebRequestClassGetRequestStreamTopic.asp

--
Patrice

"**Pierre**" a écrit dans le message de
news:
Non, je ne pense pas que ca fonctionne avec Upload. Quelle est la méthode
équivanete en VB.NET de
DataOutputStream out = new
DataOutputStream(httpConnection.getOutputStream()); (Java)


--
Pierre
"Patrice" a écrit dans le message de
news:
> Voir System.Net.WebClient. Je pense en particulier à la méthode
> UpLoadFile...
>
> --
> Patrice
>
> "**Pierre**" a écrit dans le message


de
> news:
> > Bonjour,
> >
> > Je dois envoyer un fichier XML à une URL tel que
> > https://test.e-galexis.com/testPOS/
> >
> > et obtenir la réponse. Pouvez-vous m'aider ?
> >
> > D'avance merci.
> >
> >
> > --
> > Pierre
> >
> >
>
>




Avatar
**Pierre**
Merci Patrice, je vais essayer dans ce sens et te donnerai le résultat.
Encore merci de ton aide (précieuse)

--
Pierre
"Patrice" a écrit dans le message de
news:eaT%
C'est bien un Upload à la norme RFC qui va bien (en gros ce que tu ferais
avec une balise input type=file) ? Si oui, je persiste :



http://msdn.microsoft.com/library/fre/default.asp?url=/library/FRE/cpref/html/frlrfSystemNetWebClientClassUploadFileTopic.asp

Sinon si tu dois ou si veux gérer tous les détails :



http://msdn.microsoft.com/library/fre/default.asp?url=/library/FRE/cpref/html/frlrfSystemNetHttpWebRequestClassGetRequestStreamTopic.asp

--
Patrice

"**Pierre**" a écrit dans le message de
news:
> Non, je ne pense pas que ca fonctionne avec Upload. Quelle est la


méthode
> équivanete en VB.NET de
> DataOutputStream out = new
> DataOutputStream(httpConnection.getOutputStream()); (Java)
>
>
> --
> Pierre
> "Patrice" a écrit dans le message de
> news:
> > Voir System.Net.WebClient. Je pense en particulier à la méthode
> > UpLoadFile...
> >
> > --
> > Patrice
> >
> > "**Pierre**" a écrit dans le


message
de
> > news:
> > > Bonjour,
> > >
> > > Je dois envoyer un fichier XML à une URL tel que
> > > https://test.e-galexis.com/testPOS/
> > >
> > > et obtenir la réponse. Pouvez-vous m'aider ?
> > >
> > > D'avance merci.
> > >
> > >
> > > --
> > > Pierre
> > >
> > >
> >
> >
>
>




Avatar
Patrice
L'exemple n'est probablement pas complet. Quel est le verbe utilisé ? Si
c'est GET (lire un contenu de page) il n'est pas possible d'écrire, il faut
utiliser le verbe POST (envoyer des données et lire le contenu de page)...

Pour info, l'envoi d'un fichier avec WebClient ressemble à (piqué sur un
forum) :

Dim uriStr As String = "HTTP://monpc/recup.aspx"
Dim xWebClient As New System.Net.WebClient
Dim xNomFich As String = "c:aa.txt"
Dim xReponse As Byte() = xWebClient.UploadFile(uriStr, "POST", xNomFich)

--
Patrice

"**Pierre**" a écrit dans le message de
news:
Rebonjour,

Lorsque j'entre cette commande

Dim newStream As Stream = myHttpWebRequest.GetRequestStream()
J'ai tjrs l'erreur : Impossible d'envoyer un corps de contenu avec ce type
de verbe. Pourquoi ? Même avec l'exemple de MSDN.

--
Pierre
"**Pierre**" a écrit dans le message de
news:
Bonjour,

Je dois envoyer un fichier XML à une URL tel que
https://test.e-galexis.com/testPOS/

et obtenir la réponse. Pouvez-vous m'aider ?

D'avance merci.


--
Pierre




Avatar
**Pierre**
Merci Patrice, ca à l'air de fonctionner. Je te donnes des nouvelles.

PS : Pourquoi faire compliqué quant on peut faire simple.
--
Pierre
"Patrice" a écrit dans le message de
news:
L'exemple n'est probablement pas complet. Quel est le verbe utilisé ? Si
c'est GET (lire un contenu de page) il n'est pas possible d'écrire, il


faut
utiliser le verbe POST (envoyer des données et lire le contenu de page)...

Pour info, l'envoi d'un fichier avec WebClient ressemble à (piqué sur un
forum) :

Dim uriStr As String = "HTTP://monpc/recup.aspx"
Dim xWebClient As New System.Net.WebClient
Dim xNomFich As String = "c:aa.txt"
Dim xReponse As Byte() = xWebClient.UploadFile(uriStr, "POST", xNomFich)

--
Patrice

"**Pierre**" a écrit dans le message de
news:
Rebonjour,

Lorsque j'entre cette commande

Dim newStream As Stream = myHttpWebRequest.GetRequestStream()
J'ai tjrs l'erreur : Impossible d'envoyer un corps de contenu avec ce


type
de verbe. Pourquoi ? Même avec l'exemple de MSDN.

--
Pierre
"**Pierre**" a écrit dans le message de
news:
> Bonjour,
>
> Je dois envoyer un fichier XML à une URL tel que
> https://test.e-galexis.com/testPOS/
>
> et obtenir la réponse. Pouvez-vous m'aider ?
>
> D'avance merci.
>
>
> --
> Pierre
>
>




Avatar
Patrice
Ok. Je suis un peu surpris que l'envoi fonctionne comme cela. Je pensais
qu'il faudrait tout de même ajouter les "indications" conformes à la norme
RFC machin chose (ou le site Web n'utilise pas un upload usuel ?)...
Merci pour le compte-rendu final de ta solution.
(attention à éviter aussi de ne rien mettre dans le "catch", je pense que tu
risques de passer à côté de certaines erreurs).


--
Patrice

"**Pierre**" a écrit dans le message de
news:%
Pardon, il manque 2 lignes dans le code

Dim myreq As HttpWebRequest = CType(WebRequest.Create("https://monURL"),
HttpWebRequest)
Dim resp As HttpWebResponse

Try

myreq.ContentType = "text/xml"

myreq.Method = "POST"

Dim newStream As StreamWriter = New StreamWriter(myreq.GetRequestStream())

xml_doc.PreserveWhitespace = True

xml_doc.Load("mondocument.xml")

newStream.Write(xml_doc.OuterXml) 'ici j'envoie le fichier XML

newStream.Close() 'ici je dois fermer le stream

resp = CType(myreq.GetResponse(), HttpWebResponse)

ReceiveStream = resp.GetResponseStream() 'ici je recois la réponse dans le
stream

catch

end try

--
Pierre
"**Pierre**" a écrit dans le message de
news:%
Voila, ca fonctionne mais avec la deuxième fonction soit avec WebRequest
et GetResponseStream

Dim myreq As HttpWebRequest = CType(WebRequest.Create("https://monURL"),
HttpWebRequest)
Dim resp As HttpWebResponse

Try

myreq.ContentType = "text/xml"

myreq.Method = "POST"

Dim newStream As StreamWriter = New StreamWriter(myreq.GetRequestStream())

xml_doc.PreserveWhitespace = True

xml_doc.Load("mondocument.xml")

resp = CType(myreq.GetResponse(), HttpWebResponse)

ReceiveStream = resp.GetResponseStream()

catch

end try

Je suis obligé de travailler avec la méthode GetResponseStream et non pas
le upload et webclient. Ceci me permet de récupérer le xml de réponse et de
la passer dans un dataset. Encore merci de ton aide Patrice et vive les news
group.

PS : Le serveur est un serveur APACHE et je n'ai pas voulu me lancer dans
la recherche du WSDL sur APACHE avec VB.NET mais j'ai vu que c'est possible.
A +
--
Pierre
"**Pierre**" a écrit dans le message de
news:
> Merci Patrice, ca à l'air de fonctionner. Je te donnes des nouvelles.
>
> PS : Pourquoi faire compliqué quant on peut faire simple.
> --
> Pierre
> "Patrice" a écrit dans le message de
> news:
> > L'exemple n'est probablement pas complet. Quel est le verbe utilisé ?
Si
> > c'est GET (lire un contenu de page) il n'est pas possible d'écrire, il
> faut
> > utiliser le verbe POST (envoyer des données et lire le contenu de
page)...
> >
> > Pour info, l'envoi d'un fichier avec WebClient ressemble à (piqué sur
un
> > forum) :
> >
> > Dim uriStr As String = "HTTP://monpc/recup.aspx"
> > Dim xWebClient As New System.Net.WebClient
> > Dim xNomFich As String = "c:aa.txt"
> > Dim xReponse As Byte() = xWebClient.UploadFile(uriStr, "POST",
xNomFich)
> >
> > --
> > Patrice
> >
> > "**Pierre**" a écrit dans le
message de
> > news:
> > Rebonjour,
> >
> > Lorsque j'entre cette commande
> >
> > Dim newStream As Stream = myHttpWebRequest.GetRequestStream()
> > J'ai tjrs l'erreur : Impossible d'envoyer un corps de contenu avec
ce
> type
> > de verbe. Pourquoi ? Même avec l'exemple de MSDN.
> >
> > --
> > Pierre
> > "**Pierre**" a écrit dans le
message de
> > news:
> > > Bonjour,
> > >
> > > Je dois envoyer un fichier XML à une URL tel que
> > > https://test.e-galexis.com/testPOS/
> > >
> > > et obtenir la réponse. Pouvez-vous m'aider ?
> > >
> > > D'avance merci.
> > >
> > >
> > > --
> > > Pierre
> > >
> > >
> >
> >
>
>