|
Recherche |
SoAPI est un service web qui vous permet d'acheter et de configurer vos produits OVH sans avoir a vous connectez à l'interface de gestion (Manager V3). Avec la technologie WSDL, vous utilisez les méthodes OVH à distance avec des petits bouts de code de quelques lignes seulement, dans votre langage de programmation favori. Plus d'informations sur le site OVH. Toutes les signatures des méthodes ainsi qu'un générateur de code PHP, Perl, Python, Ruby et C# sont disponibles dans la documentation technique. Vous avez le message d'erreur suivant :
La solution : Utiliser la dernière version de développement de SOAPpy : http://pywebsvcs.svn.sourceforge.net/viewvc/pywebsvcs/trunk/SOAPpy/ Vous avez les messages d'erreurs suivants :
La raison probable : La gestion du timeout par defaut de curl est trop courte. La solution : Augmenter le timeout de curl en éditant la classe SOAP_Transport_HTTP Vous trouverez ce fichier :
Modifier la variable $timeout (ligne 64) : var $timeout = 30; Perl : #!/usr/bin/perl use strict; use SOAP::WSDL; import SOAP::Lite; # Keep-Alive? $SOAP::Constants::PATCH_HTTP_KEEPALIVE = 1; my $soap = SOAP::WSDL->new(); $soap->wsdl('http://www.ovh.com/soapi/ovh.wsdl') $soap->wsdlinit(); # limitation des connections simultanées my $transport = $soap->transport(); $transport->conn_cache({ total_capacity => 10 }); [...] 1) Créer la classe proxy du webservice avec l'outils wsdl.exe $> wsdl.exe http://www.ovh.com/soapi/soapi-dlw-1.21.wsdl puis ajouter la classe managerService.cs au projet L'outil wsdl.exe se trouve généralement dans le répertoire : C:\Program Files\Microsoft SDKs\Windows\v7.0A\Bin 2) Ajouter la référence System.Web.Services 3) Appeler la webservice : managerService soapi = new managerService(); Un exemple de code avec appel à domainList : using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace MyProject? { class Program { static void Main(string[] args) { managerService soapi = new managerService(); //login string session = soapi.login("XXXXX-ovh", "XXXXXX", "fr", false); string[] domains = soapi.domainList(session); //logout soapi.logout(session); foreach(string dom in domains) { Console.WriteLine(dom); } Console.ReadLine(); } } } |