OVH Cloud OVH Cloud

WebServices

3 réponses
Avatar
marc
Bonjour,

Je suis novice avec ASP et WebService...
Je dois écrire un WebSevice qui renvoi le contenu d'un fichier XML.
J'ai réussi à faire communiquer les deux applications avec un test simple.
Cependant lorsque j'envoie le contenu du fichier sous forme de chaîne de
caractère(string), à l'arrivée je reçois aussi une chaîne de caratère.
Donc ma question est : Comment envoyer mes données pour qu'elles soient
reconnues à l'arrivée comme un flux xml ?

Voici mon code :
[WebService(Namespace = "http://MonNamespace/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class monWS : System.Web.Services.WebService
{
public monWS () {

}
[WebMethod]
public string FluxXML()
{

string filePath = @"C:\temp\fichier.xml";

StreamReader sw = new StreamReader(filePath);
string s = sw.ReadToEnd();

return s;
}
}
}

Merci d'avance
Marc

3 réponses

Avatar
Fred
Dans le message:dn3rts$u10$,
marc écrit:
Bonjour,



Bonjour

Je suis novice avec ASP et WebService...
Je dois écrire un WebSevice qui renvoi le contenu d'un fichier XML.
J'ai réussi à faire communiquer les deux applications avec un test
simple. Cependant lorsque j'envoie le contenu du fichier sous forme
de chaîne de caractère(string), à l'arrivée je reçois aussi une
chaîne de caratère. Donc ma question est : Comment envoyer mes
données pour qu'elles soient reconnues à l'arrivée comme un flux xml ?



Tu peux renvoyer directement un objet xmlDocument.
Sinon, tu déclares en réception un objet xmlDocument et tu utilises
LoadXml avec la chaîne reçue en paramètre.
La méthode Save permet ensuite de retrouver un fichier.
Cela répond-il au problème ?

--
Fred
http://www.cerbermail.com/?3kA6ftaCvT
Avatar
marc
Fred a écrit :
Bonjour

Tu peux renvoyer directement un objet xmlDocument.
Sinon, tu déclares en réception un objet xmlDocument et tu utilises
LoadXml avec la chaîne reçue en paramètre.
La méthode Save permet ensuite de retrouver un fichier.
Cela répond-il au problème ?




Merci Fred pour ta réponse.

J'ai oublié de mentionner que le consommateur du WebService est en Java.
Du coup je ne crois pas que le XmlDocument soit apprécié à sa juste
valeur ;-)

Est-ce que je ne dois pas faire l'envoi en mode "RPC" au lieu de
"Document" ?

Marc
Avatar
Simon Mourier [SoftFluent]
Normalement, si le web service est crée et fonctionne (on ne se rend parfois
compte de certains soucis qu'à l'éxecution, pas uniquement à la
compilation), il pourra être lu par tout client supportant la norme des Web
Services (SOAP 1.1).

Le .NET framework masque tout un tas de choses. En l'occurrence, un
XmlDocument ou un XmlNode seront décris comme un noeud de type "any", c'est
à dire pouvant accepter n'importe quoi (du XML bien sûr!).

Sur plateforme Windows, si on crée des classes proxy (en utilisant WSDL ou
Add Web Reference) avec Visual Studio, il "retrouve ses petits" en essayant
de coller au mieux. En l'occurrence, il déclarera un "any" comme un XmlNode.
(C'est comme quand on envoie un DataSet, le proxy de VS déclarera aussi un
DataSet, ceci est dû à la fameuse interface IXmlSerializable mais c'est une
autre histoire...).

Sur d'autres plateformes, ou d'autres langages, ou sans classes proxy, ou
avec d'autres générateurs de classes proxy, on aura d'autres choses, mais on
pourra toujours se débrouiller puisque "any" est officiel.

Simon.
www.softfluent.com


"marc" a écrit dans le message de news:
dn43oa$3lb$
Fred a écrit :
Bonjour

Tu peux renvoyer directement un objet xmlDocument.
Sinon, tu déclares en réception un objet xmlDocument et tu utilises
LoadXml avec la chaîne reçue en paramètre.
La méthode Save permet ensuite de retrouver un fichier.
Cela répond-il au problème ?




Merci Fred pour ta réponse.

J'ai oublié de mentionner que le consommateur du WebService est en Java.
Du coup je ne crois pas que le XmlDocument soit apprécié à sa juste valeur
;-)

Est-ce que je ne dois pas faire l'envoi en mode "RPC" au lieu de
"Document" ?

Marc