Dans cette source, je vous montre comment créer son propre Service Web.
Ce service web, n'a rien d'extraordinaire, je l'ai réalisé suite à une question dans le forum.
Son but est simple, il fallait un service web, renvoyant des noms de Fichiers, j'ai un peu etoffé l'affaire, et j'ai rajouté des categories.
Il vout faut un dossier Images à la base du site, dans ce dossier, il vous faut plusieurs Dossiers, leurs noms est le nom de la categorie, à l'interieur de ces dossiers, vous mettez des images au format jpg et ce sont le nom de ces images qui vont etre retournés avec l'appel des fonction GetFilesName/GetFilesFullName
Ce Service Web posséde 3 méthodes:
- GetCategories : qui retourne un tableau de String avec les differentes Catégorie
- GetFilesName : retourne un tableau de string avec le nom du fichier, il demande le nom de la Categorie
- GetFilesFullName : Meme function que ci dessus sauf qu'il retourne le nom entier du fichier, dans le but de pouvoir le telecharger
Ce service est volontairement simple, pour pouvoir utiliser ce service web, il faudrais ajouter une gestion des erreurs etc... mais j'ai volontairement simplifié le code
C'est aussi à cause de sa simplicité que je n'ai pas expliqué le code.
pour qu'une méthode soit visible à travers un service web, il suffit simplement d'importer la classe
Imports System.Web.Services
et d'ajouter l'attribut <WebMethod()> devant la class dans un fichier de service web (asmx)
Vous pouvez tester ce service web à l'adresse suivante :
http://fr-cyrildurand.int.webmatrixhosting.net/DownloadFile/DownloadFile.asmx
Source / Exemple :
Imports System.Web.Services
Imports System.io
<System.Web.Services.WebService(Namespace:="http://fr-cyrildurand.int.webmatrixhosting.net/DownloadFile/Service1")> _
Public Class Service1
Inherits System.Web.Services.WebService
#Region " Code généré par le Concepteur des services Web "
Public Sub New()
MyBase.New()
'Cet appel est requis par le Concepteur des services Web.
InitializeComponent()
'Ajoutez votre code d'initialisation après l'appel InitializeComponent()
End Sub
'Requis par le Concepteur des services Web
Private components As System.ComponentModel.IContainer
'REMARQUE : la procédure suivante est requise par le Concepteur des services Web
'Elle peut être modifiée en utilisant le Concepteur des services Web.
'Ne la modifiez pas en utilisant l'éditeur de code.
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
components = New System.ComponentModel.Container
End Sub
Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
'CODEGEN : cette procédure est requise par le Concepteur des services Web
'Ne la modifiez pas en utilisant l'éditeur de code.
If disposing Then
If Not (components Is Nothing) Then
components.Dispose()
End If
End If
MyBase.Dispose(disposing)
End Sub
#End Region
Private Const DirectoryImages As String = "Images"
Private Const AdressWebService As String = "http://fr-cyrildurand.int.webmatrixhosting.net/DownloadFile"
<WebMethod()> Public Function GetCategories() As String()
If Directory.Exists(Server.MapPath(DirectoryImages)) Then
Dim DI() As DirectoryInfo = New DirectoryInfo(Server.MapPath(DirectoryImages)).GetDirectories
Dim _GetCategories(DI.Length - 1) As String
Dim i As Integer
For Each _DI As DirectoryInfo In DI
_GetCategories(i) = _DI.Name
i += 1
Next
Return _GetCategories
Else
'Erreur : le Dossier des images n'existe pas
End If
End Function
<WebMethod()> Public Function GetFilesName(ByVal Category As String) As String()
If Directory.Exists(Server.MapPath(DirectoryImages & "\" & Category)) Then
Dim FI() As FileInfo = New DirectoryInfo(Server.MapPath(DirectoryImages & "/" & Category)).GetFiles("*.jpg")
Dim _GetFilesName(FI.Length - 1) As String
Dim i As Integer
For Each _FI As FileInfo In FI
_GetFilesName(i) = _FI.Name
i += 1
Next
Return _GetFilesName
End If
End Function
<WebMethod()> Public Function GetFilesFullName(ByVal Category As String) As String()
Dim _GetFilesFullName() As String = GetFilesName(Category)
Dim _GetFilesFullNameTemp(_GetFilesFullName.Length - 1) As String
Dim i As Integer
For Each s As String In _GetFilesFullName
_GetFilesFullNameTemp(i) = AdressWebService & "/" & DirectoryImages & "/" & Category & "/" & s
i += 1
Next
Return _GetFilesFullNameTemp
End Function
End Class
Conclusion :
Vous pouvez tester ce Service Web avec une version de demonstration du logiciel Mindreef, je ne sais encore pas ce que ca vaut car je suis en train de le telecharger (56k...)
-->
http://www.mindreef.com/order/eval.php
D'ici quelques temps, je mettrais un exemple de code pour pouvoir utiliser ce service web, à partir d'une application winform (asp.net VB) et à partir d'une application WebForm (C#)
Pour toutes questions ou commentaires, veuillez les indiquer ci dessus
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.