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

Dotnet Discussion :

"Un URI de demande non valide a été fourni.


Sujet :

Dotnet

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    958
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 958
    Points : 141
    Points
    141
    Par défaut "Un URI de demande non valide a été fourni.
    Bonsoir,

    J'ai repris le code de développement d'un serveur d'api.

    Quand j'arrive à cette fonction

    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
     
     
    [HttpPost]
     
            public async Task<ActionResult> FormulaireAjoutAuteur(VM_Auteur aut)
            {
     
                try
                {
                    ServiceAuteur servAuteur = new ServiceAuteur();
                    Auteur auteur = new Auteur() { Surname = aut.Prenom, Name = aut.Nom, DateOfBirthday = aut.DateDeNaissance };
     
                    var ajoutResult = await servAuteur.AjouterUnAuteur(auteur);
     
                    if (ajoutResult != null)
                        return RedirectToAction("Accueil", "Accueil");
                    else
                        return View("FormulaireAjoutAuteur");
     
                }
     
                catch (Exception ex)
                {
                    Console.WriteLine("l'erreur suivante s'est produite" + ex.Message);
     
                    return View("FormulaireAjoutAuteur");  
     
                }
     
                }//fin de FormulaireAjoutauteur
    J'ai cette erreur

    ex.Message = "Un URI de demande non valide a été fourni. L'URI de demande doit être absolu ou BaseAddress doit être défini."


    elle se declenche au niveau de cette instruction dans la classe ServiceAuteur

    var objetReponse = await client.PostAsync("{ urlAPI}Auteur/", content);
    Voici la classe ServiceAuteur

    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
     
     
    public class ServiceAuteur
        {
            private const string urlAPI = "http://localhost:59343/api/";
            //Ajoute un auteur
            public async Task<Auteur> AjouterUnAuteur(Auteur auteur)
            {
     
                   HttpClient client = new HttpClient();
                    var content = new ObjectContent<Auteur>(auteur, new JsonMediaTypeFormatter());
                    var objetReponse = await client.PostAsync("{ urlAPI}Auteur/", content);
                    if (objetReponse.IsSuccessStatusCode)
                    {
                        return auteur;
                    }
                    else if (objetReponse.StatusCode == System.Net.HttpStatusCode.NotFound)
                    {
                        return null;
                    }
                    else
                    {
                        throw new Exception("Un problème avec API : status = {objetReponse.StatusCode}");
                    }
     
                }
    Comment fournir une URI correcte, du fait que je ne travaille plus dans l'entreprise et dans l'environnement dans lequel j'ai conçu ce serveur d'API

    Merci beaucoup de votre aide.

    Bien cordialement.

    new_wave
    Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes. [SHADOKS]

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    1 126
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 1 126
    Points : 1 636
    Points
    1 636
    Par défaut
    l'adresse indique un serveur local (donc sur ta machine) accessible par le port 59343 et donc une page http://localhost:59343/api/Auteur/ doit être atteignable.
    Après, je vois un espace entre l'accolade et le nom de la variable ("{ urlAPI}Auteur/" => ("{urlAPI}Auteur/" (à moins que ce soit un effet du forum; a priori non)

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    958
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 958
    Points : 141
    Points
    141
    Par défaut URI non valide
    Bonjour,

    Merci de ta réponse.

    J'ai enlevé l'espace mais cela ne fonctionne toujours pas .

    Par contre , quand la page web de saisie d'un auteur s'affiche je vois le port 59281.

    J'ai modifié l'URL en mettant ce port 59281 mais j'ai la même erreur qui se déclenche au même endroit.(voir fichiers joints)

    J'ai bien regardé l'interface de saisie , on voit l'url http://localhost:59281/Auteur/FormulaireAjoutAuteur (voir fichier joint)

    Ce n'est pas une adresse "http://localhost:59281/api/";


    Petite question: suis je censée voir ce numero de port dans le fire wall.

    J'ai regardé dans les règles de trafic entrant et sortant et ne l'ai pas vu.

    Merci beaucoup à nouveau de ton retour.

    Bien cordialement.

    new_wave
    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
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
     
     
    using Entite;
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Net.Http;
    using System.Text;
    using System.Threading.Tasks;
    using Newtonsoft.Json;
    using System.IO;
    using System.Net.Http.Formatting;
     
    namespace ConsommerAPI
    {
        public class ServiceAuteur
        {//port 59343 première version
            private const string urlAPI = "http://localhost:59281/api/";
     
     
            //Ajoute un auteur
            public async Task<Auteur> AjouterUnAuteur(Auteur auteur)
            {
     
                   HttpClient client = new HttpClient();
                    var content = new ObjectContent<Auteur>(auteur, new JsonMediaTypeFormatter());
                    var objetReponse = await client.PostAsync("{urlAPI}Auteur/", content);
                    if (objetReponse.IsSuccessStatusCode)
                    {
                        return auteur;
                    }
                    else if (objetReponse.StatusCode == System.Net.HttpStatusCode.NotFound)
                    {
                        return null;
                    }
                    else
                    {
                        throw new Exception("Un problème avec API : status = {objetReponse.StatusCode}");
                    }
     
                }
     
     
     
     
            public async Task<IEnumerable<Auteur>> recupLesAuteursAsync()
            {
     
                HttpClient client = new HttpClient();
                var objetReponse = await client.GetAsync("{urlAPI}Auteur/");
     
     
                if (objetReponse.StatusCode == System.Net.HttpStatusCode.OK)
                {
                    var objetContenu = objetReponse.Content;
                    var stringContenu = await objetContenu.ReadAsStringAsync();
     
                    var listAuteur = JsonConvert.DeserializeObject<IEnumerable<Auteur>>(stringContenu);
     
                    return listAuteur;
     
                }
                else if (objetReponse.StatusCode == System.Net.HttpStatusCode.NotFound)
                {
                    return null;
                }
                else
                {
     
                    var objetContenu = objetReponse.Content;
                    var stringContenu = await objetContenu.ReadAsStringAsync();
     
                    throw new Exception("Un problème avec API : status = {objetReponse.StatusCode}, contenu : {stringContenu}");
                }
     
     
            }
     
            public async Task<Auteur> recupAuteurById(int id)
            {
                HttpClient client = new HttpClient();
                var objetReponse = await client.GetAsync("{urlAPI}Auteur/{id}");
     
     
                if (objetReponse.StatusCode == System.Net.HttpStatusCode.OK)
                {
                    var objetContenu = objetReponse.Content;
                    var stringContenu = await objetContenu.ReadAsStringAsync();
     
                    var auteur = JsonConvert.DeserializeObject<Auteur>(stringContenu);
     
                    return auteur;
     
                }
                else if (objetReponse.StatusCode == System.Net.HttpStatusCode.NotFound)
                {
                    return null;
                }
                else
                {
                    var objetContenu = objetReponse.Content;
                    var stringContenu = await objetContenu.ReadAsStringAsync();
                    throw new Exception("Un problème avec API : status = {objetReponse.StatusCode}, contenu : {stringContenu}");
                }
     
            }
     
     
        }
    }
    Images attachées Images attachées   
    Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes. [SHADOKS]

Discussions similaires

  1. [Batch] WMIC.EXE OK en ligne de commandes mais pas en BATCH : Demande non valide
    Par waici dans le forum Scripts/Batch
    Réponses: 2
    Dernier message: 25/01/2013, 10h24
  2. erreur avec socket "un argument non valide à ete fournie"
    Par Abdelweheb dans le forum Réseau
    Réponses: 1
    Dernier message: 16/05/2012, 09h14
  3. [c#][1.1] Problème WMI demande non valide
    Par ___trankilou___ dans le forum Windows Forms
    Réponses: 2
    Dernier message: 15/09/2006, 14h51
  4. TThread et waitfor - descripteur non valide
    Par code34 dans le forum Langage
    Réponses: 2
    Dernier message: 27/10/2003, 23h44

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