Appeler par programmation webmethods en C#
Je suis en train d'écrire une fonction qui peut s'appeler un webmethod à partir d'une webserive compte tenu de la méthode nom et l'URL du webservice. J'ai trouvé un code sur un blog, qu'est-ce que cela bien sauf pour un détail. Il exige que la requête XML. Le but ici est d'obtenir la demande de modèle XML à partir du site web lui-même. Je suis sûr que c'est possible en quelque sorte parce que je peux voir à la fois la demande et la réponse des modèles XML si j'ai accès à un service web de l'URL dans mon navigateur.
C'est le code qui appelle la webmethod programme:
XmlDocument doc = new XmlDocument();
//this is the problem. I need to get this automatically
doc.Load("../../request.xml");
HttpWebRequest req = (HttpWebRequest)WebRequest.Create("http://localhost/dummyws/dummyws.asmx?op=HelloWorld");
req.ContentType = "text/xml;charset=\"utf-8\"";
req.Accept = "text/xml";
req.Method = "POST";
Stream stm = req.GetRequestStream();
doc.Save(stm);
stm.Close();
WebResponse resp = req.GetResponse();
stm = resp.GetResponseStream();
StreamReader r = new StreamReader(stm);
Console.WriteLine(r.ReadToEnd());
comment pouvez-vous appeler une méthode (service web ou autre) si vous ne connaissez pas l'avant jusqu'à ce que paramètres dont il a besoin?
Supposons maintenant que ces webmethods ne nécessite pas de paramètres.
Le service web exposer une description WSDL?
Oui, le webservice expose une description WSDL.
Donc, vous pouvez pas utiliser le fichier WSDL comme la définition de votre demande de XML? Ou, plus facile, de générer un proxy du service web à partir du WSDL?
Supposons maintenant que ces webmethods ne nécessite pas de paramètres.
Le service web exposer une description WSDL?
Oui, le webservice expose une description WSDL.
Donc, vous pouvez pas utiliser le fichier WSDL comme la définition de votre demande de XML? Ou, plus facile, de générer un proxy du service web à partir du WSDL?
OriginalL'auteur hancock | 2010-06-04
Vous devez vous connecter pour publier un commentaire.
Après les commentaires ci-dessus. Si vous avez un fichier WSDL qui décrit votre service, vous utilisez ce que les renseignements requis pour communiquer avec votre service web.
À l'aide d'une classe proxy pour communiquer avec votre service de proxy est un moyen facile de résumé-vous de la jacente de HTTP et XML.
Il y a des façons de le faire au moment de l'exécution - essentiellement générer le code qui génère Visual Studio lorsque vous ajoutez une référence de service web à votre projet.
J'ai utilisé une solution qui a été basée sur: ce groupe de discussion de la question, mais il y a aussi d'autres exemples de la.
OriginalL'auteur dariom
Pour info, votre code est manquant
using
blocs. Il doit être comme ceci:OriginalL'auteur John Saunders