Rechercher les villes suivant le codepostal via un webservice

Description

Ce code permet de trouver les villes en fonctions du code postal. Ce code fonctionne en France.

Le webservice utilisé se situe ici : http://www.e-naxos.com/scripts/enwscp.dll/wsdl/IODCODESPOSTAUX

Je vous ai fait une petite classe et une dll qui permet de s'en servir tres facilement.

pour s'en servir il faut tout simplement mettre la dll dans votre dossier bin.

Voici un exemple :

Dim LesVilles As New Cyril.Utility.CodePostal(_CodePostal)
_Villes = LesVilles.GetVille

_villes sera un tableau de string contenant toutes les villes du code postal

j'ai fait une gestion des erreurs il reste surement qq bugs.

J'utilise dans le code une autre de mes classe : la classe validation pour valider le code postal vous trouverez le code ici : http://www.aspfr.com/code.aspx?ID=21651

Dans la dll il y a d'autre chose, ce qui nous interesse et la classe CodePostal qui se situe dans le Namespace Cyril.Utility

Je me sers également du namespace Cyril.Utility.Webservice et de sa classe IODCODESPOSTAUXservice qui est automatiquement généré par VS.net

Source / Exemple :


Namespace Cyril.Utility

    ''' -----------------------------------------------------------------------------
    ''' Project	 : Cyril
    ''' Class	 : Utility.CodePostal
    ''' 
    ''' -----------------------------------------------------------------------------
    ''' <summary>
    ''' Cette classe met en relation le webservice 
    ''' http://www.e-naxos.com/scripts/enwscp.dll/wsdl/IODCODESPOSTAUX
    ''' pour asp.net
    ''' 
    ''' </summary>
    ''' <remarks>
    ''' </remarks>
    ''' <history>
    ''' 	[DURAND Cyril]	02/04/2004	Created
    ''' </history>
    ''' -----------------------------------------------------------------------------
    Public Class CodePostal

        Private _CP As String

#Region "Exception"
        Private Class NotValidCodePostalException
            Inherits ArgumentException

            Public Overrides ReadOnly Property Message() As String
                Get
                    Return "Le code postal demandé était invalide"
                End Get
            End Property
        End Class
        Private Class NotFoundCodePostalException
            Inherits ArgumentException

            Public Overrides ReadOnly Property Message() As String
                Get
                    Return "Le code postal demandé est introuvable"
                End Get
            End Property
        End Class
#End Region

        ''' -----------------------------------------------------------------------------
        ''' <summary>
        ''' 
        ''' </summary>
        ''' <param name="CP"> Code Postal de la ville recherché </param>
        ''' <remarks>
        ''' </remarks>
        ''' <history>
        ''' 	[DURAND Cyril]	31/03/2004	Created
        ''' </history>
        ''' -----------------------------------------------------------------------------
        Public Sub New(ByVal CP As String)

            _CP = CP
        End Sub

        Public ReadOnly Property GetVille() As String()
            Get
                Try
                    Dim Valid As New Cyril.Utility.Validation.StringValidation
                    If Valid.isCodePostal(_CP) Then

                        Dim LesVilles As New Webservice.IODCODESPOSTAUXservice

                        Dim sGetVille As String
                        sGetVille = LesVilles.GetTownForZip(_CP.ToString, "|")
                        sGetVille = Replace(sGetVille, _CP.ToString & "=", "")

                        GetVille = sGetVille.Split("|")
                        LesVilles.Dispose()

                    Else
                        Throw New NotValidCodePostalException
                    End If

                Catch ex As NotValidCodePostalException
                    Throw New NotValidCodePostalException

                Catch ex As Exception
                    Throw New NotFoundCodePostalException

                End Try

            End Get
        End Property

        Public ReadOnly Property GetPrefecture() As String
            Get
                Try
                    Dim Valid As New Cyril.Utility.Validation.StringValidation
                    If Valid.isCodePostal(_CP) Then

                        Dim LesVilles As New Webservice.IODCODESPOSTAUXservice

                        GetPrefecture = LesVilles.GetDepartmentAdminCenterForCode(GetDepartementNumber)
                        LesVilles.Dispose()

                    Else
                        Throw New NotValidCodePostalException
                    End If

                Catch ex As NotValidCodePostalException
                    Throw New NotValidCodePostalException

                Catch ex As Exception
                    Throw New NotFoundCodePostalException

                End Try

            End Get
        End Property
        Public ReadOnly Property GetDepartementNumber() As String
            Get
                Dim Valid As New Cyril.Utility.Validation.StringValidation
                If Valid.isCodePostal(_CP) Then

                    Return Left(_CP, 2)

                Else
                    Throw New NotValidCodePostalException
                End If

            End Get
        End Property
        Public ReadOnly Property GetDepartement() As String
            Get
                Try
                    Dim Valid As New Cyril.Utility.Validation.StringValidation
                    If Valid.isCodePostal(_CP) Then

                        Dim LesVilles As New Webservice.IODCODESPOSTAUXservice

                        GetDepartement = LesVilles.GetDepartmentForCode(GetDepartementNumber)
                        LesVilles.Dispose()

                    Else
                        Throw New NotValidCodePostalException
                    End If

                Catch ex As NotValidCodePostalException
                    Throw New NotValidCodePostalException

                Catch ex As Exception
                    Throw New NotFoundCodePostalException

                End Try
            End Get
        End Property

    End Class

End Namespace

Conclusion :


J'ai encore pas vu de bug mais je suis pas sur à 100%

Je vais bientot mettre un composant qui sera composé d'un textbox et d'un dropdownlist mais en cours de finalisation donc patience

Vous pouvez trouver la version de la dll la plus recente ici : http://jesusonline.free.fr/Cyril/

Dans le zip il y a la dll les commentaires generé automatiquement pas VS.net et les fichiers de code

Codes Sources

A voir également

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.