IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Appel web service API REST


Sujet :

VB.NET

  1. #1
    Expert confirmé
    Avatar de jimbolion
    Homme Profil pro
    Moulticien
    Inscrit en
    Janvier 2013
    Messages
    3 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Moulticien
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2013
    Messages : 3 150
    Billets dans le blog
    2
    Par défaut Appel web service API REST
    Bonjour la communauté,

    Je fais appel à un Web Service en API Rest et mon code malgré mes recherches me renvoie toujours le message suivant :
    La demande a été abandonnée: impossible de créer le canal sécurisé SSL / TLS
    J'ai bien rajouté les 2 lignes suivantes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ServicePointManager.Expect100Continue = true
    ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls1
    Je poste mon code, si quelqu'un d'entre vous a une idée ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
            Dim NewUrl As String = ""
            '
            Dim myheaders As WebHeaderCollection
            Dim postData As String = ""
            ' POST /areafse/extraireRSPs HTTP/1.1
     
     
            Dim NumeroFacture As String = ""
            '
            '
            NewUrl = "https://rcubkp........"
            '
            postData = ""
            '
            Dim request As HttpWebRequest = HttpWebRequest.Create(NewUrl)
     
            ' Set the Method property of the request to POST.
            request.Method = "POST"
            ' Create POST data and convert it to a byte array.
     
            Dim byteArray As Byte() = Encoding.UTF8.GetBytes(postData)
            ' Set the ContentType property of the WebRequest.
            request.UserAgent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.14) Gecko/20080404 Firefox/2.0.0.14"
            request.Accept = "*/*"
            request.ServicePoint.Expect100Continue = True
            ServicePointManager.DefaultConnectionLimit = 9999
            ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12
     
            request.ContentType = "application/json"
            request.ContentLength = byteArray.Length
            '
            myheaders = request.Headers
            myheaders.Add("Pragma", "no-cache")
     
            ' Get the request stream.
            Dim dataStream As Stream = request.GetRequestStream()
            ' Write the data to the request stream.
            dataStream.Write(byteArray, 0, byteArray.Length)
            ' Close the Stream object.
            dataStream.Close()
            ' Get the response.
            Try
                Dim response As WebResponse = request.GetResponse()
                ' Display the status.
                '
                ' Get the stream containing content returned by the server.
                dataStream = response.GetResponseStream()
                ' Open the stream using a StreamReader for easy access.
                Dim reader As New StreamReader(dataStream)
                ' Read the content.
                Dim responseFromServer As String = reader.ReadToEnd()
                ' Display the content.
                '
                If CType(response, HttpWebResponse).StatusCode = 200 Then
                    Accueil.ZtCode.Text = "0"
                    Accueil.ZtLibelle.Text = "La Fonction s'est déroulée avec Succès"
                Else
                    Accueil.ZtCode.Text = CType(response, HttpWebResponse).StatusCode
                    Accueil.ZtLibelle.Text = "Problème d'Appel du Web Service lireCPS"
                End If
                '
                Accueil.ZtDescription.Text = responseFromServer
                '
                Dim objStreamWriter As StreamWriter
                objStreamWriter = New StreamWriter(Application.StartupPath & "\Ws_response_extraireRsps.xml")
                'Write a second line of text.
                objStreamWriter.WriteLine(responseFromServer)
     
                'Close the file.
                objStreamWriter.Close()
                ' Clean up the streams.
                reader.Close()
                dataStream.Close()
                response.Close()
                '
                Return True
                '
            Catch ex As Exception
                'Accueil.ZtCode.Text = "100"
                'Accueil.ZtLibelle.Text = "Erreur ws_ExtraireRsps"
                MsgBox(ex.Message, MsgBoxStyle.Critical, "ws_ExtraireRsps")
                'Accueil.ZtDescription.Text = ex.Message
                Return False
            End Try
            '
            Return Nothing
        End Function
    Merci d'avance
    Jimbolion

  2. #2
    Membre expérimenté
    Homme Profil pro
    IT Manager
    Inscrit en
    Janvier 2018
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Manager
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2018
    Messages : 220
    Par défaut
    Hello,

    Tu ne semble pas passer de login/mot de passe pour te connecter sur ton api ??

  3. #3
    Expert confirmé
    Avatar de jimbolion
    Homme Profil pro
    Moulticien
    Inscrit en
    Janvier 2013
    Messages
    3 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Moulticien
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2013
    Messages : 3 150
    Billets dans le blog
    2
    Par défaut API REST
    Thovan bonjour,

    Merci pour ta réponse

    Le code complet ici, peut-être que la construction du Json dans le body n'est pas cohérent ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    Function test_url_alliance()
            Dim NewUrl As String = ""
            '
            Dim myheaders As WebHeaderCollection
            Dim postData As String = ""
            '
            '
            NewUrl = "https://rcubkp.groupeall.fr:5443/Rcu/static/auth/j_spring_security_check"
            '
            postData = ""
            '
            Dim request As HttpWebRequest = HttpWebRequest.Create(NewUrl)
     
            ' Set the Method property of the request to POST.
            request.Method = "POST"
            ' Create POST data and convert it to a byte array.
            postData = "{" & Chr(34) & "j_username" & Chr(34) & ":" & Chr(34) & "username" & Chr(34) & "," & Chr(34) & "j_password" & Chr(34) & ":" & Chr(34) & "password" & Chr(34)
            postData = postData & "}"
            '
            Dim byteArray As Byte() = Encoding.UTF8.GetBytes(postData)
            ' Set the ContentType property of the WebRequest.
            request.UserAgent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.14) Gecko/20080404 Firefox/2.0.0.14"
            request.Accept = "*/*"
            request.ServicePoint.Expect100Continue = True
            ServicePointManager.DefaultConnectionLimit = 9999
            ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12
     
            request.ContentType = "application/json"
            request.ContentLength = byteArray.Length
            '
            myheaders = request.Headers
            myheaders.Add("Pragma", "no-cache")
     
            ' Get the request stream.
            Dim dataStream As Stream = request.GetRequestStream()
            ' Write the data to the request stream.
            dataStream.Write(byteArray, 0, byteArray.Length)
            ' Close the Stream object.
            dataStream.Close()
            ' Get the response.
            Try
                Dim response As WebResponse = request.GetResponse()
                ' Display the status.
                '
                ' Get the stream containing content returned by the server.
                dataStream = response.GetResponseStream()
                ' Open the stream using a StreamReader for easy access.
                Dim reader As New StreamReader(dataStream)
                ' Read the content.
                Dim responseFromServer As String = reader.ReadToEnd()
                ' Display the content.
                '
                If CType(response, HttpWebResponse).StatusCode = 200 Then
                    Accueil.ZtCode.Text = "0"
                    Accueil.ZtLibelle.Text = "La Fonction s'est déroulée avec Succès"
                Else
                    Accueil.ZtCode.Text = CType(response, HttpWebResponse).StatusCode
                    Accueil.ZtLibelle.Text = "Problème d'Appel du Web Service lireCPS"
                End If
                '
                Accueil.ZtDescription.Text = responseFromServer
                '
                Dim objStreamWriter As StreamWriter
                objStreamWriter = New StreamWriter(Application.StartupPath & "\Ws_response.xml")
                'Write a second line of text.
                objStreamWriter.WriteLine(responseFromServer)
     
                'Close the file.
                objStreamWriter.Close()
                ' Clean up the streams.
                reader.Close()
                dataStream.Close()
                response.Close()
                '
                Return True
                '
            Catch ex As Exception
                MsgBox(ex.Message, MsgBoxStyle.Critical, "ws_ExtraireRsps")
                Return False
            End Try
            '
            Return Nothing
        End Function
    Bien à toi
    Je joins au message le document décrivant l'appel de l'API Rcu - WebService.pdf
    JimboLion

  4. #4
    Membre expérimenté
    Homme Profil pro
    IT Manager
    Inscrit en
    Janvier 2018
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Manager
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2018
    Messages : 220
    Par défaut
    Ok,

    Je ne vois nulle part de credentials... c'est déjà strange.

    Moi je passe mes credentials comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    
    .....blabla.....
                Dim uri As New Uri(uristring)
                Dim req As HttpWebRequest = HttpWebRequest.Create(uri)
                req.Method = "GET"
                Dim encoded As String = System.Convert.ToBase64String(System.Text.Encoding.GetEncoding("ISO-8859-1").GetBytes(username + ":" + password))
                req.Headers.Add("Authorization", "Basic " + encoded)
                Dim response As HttpWebResponse = req.GetResponse()
    .....blabla.....
    Mais, ce que tu peux faire pour te débeugger déjà, c'est d'essayer manuellement ta requête avec postman et de voir ce que ça donne...
    En fonction de la réussite et/ou des messages d'erreurs, tu devrais petit à petit te débloquer.

  5. #5
    Expert confirmé
    Avatar de jimbolion
    Homme Profil pro
    Moulticien
    Inscrit en
    Janvier 2013
    Messages
    3 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Moulticien
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2013
    Messages : 3 150
    Billets dans le blog
    2
    Par défaut
    Thovan bonjour,

    En utilisant ta méthode j'obtiens exactement le même message et le plus étonnant c'est que la requête fonctionne avec Postman

    J'ai essayé aussi ceci mais même résultat :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    request.Credentials = CredentialCache.DefaultCredentials
    C'est une particularité du langage je pense et dans la construction du code.


    Jimbolion

  6. #6
    Membre expérimenté
    Homme Profil pro
    IT Manager
    Inscrit en
    Janvier 2018
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Manager
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2018
    Messages : 220
    Par défaut
    Ok, donc si avec Postman ça marche, c'est ton code qui foire...
    Tape un point d'arrêt au début et exécute pas à pas pour voir à quelle ligne ça merde...

Discussions similaires

  1. Erreur HTTP 403 lors appel web service REST
    Par Invité dans le forum TypeScript
    Réponses: 4
    Dernier message: 12/12/2017, 10h13
  2. [Web Service][API Google Maps] Ne fonctionne pas en ligne
    Par PRACH dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 07/12/2009, 10h30
  3. Réponses: 3
    Dernier message: 05/12/2008, 11h59
  4. Problème appel Web Service SharePoint
    Par bugmenot dans le forum Windows
    Réponses: 0
    Dernier message: 14/09/2007, 15h09
  5. [2.0][C#] appel web service
    Par lenoil dans le forum Services Web
    Réponses: 1
    Dernier message: 09/10/2006, 08h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo