2016-04-19 3 views
0

Je dois définir les valeurs du HttpWebResponse renvoyé par le contrôleur, mais je ne peux pas créer un objet .Renvoi d'une HttpWebResponse à partir d'une application serveur (REST) ​​

En ce moment, je veux juste définir le code d'état, mais peut-être que je vais avoir besoin d'autres parties de la classe HttpWebResponse bientôt aussi. Tout ce que je peux faire maintenant est de renvoyer les chaînes comme un statut ce qui est évidemment faux puisque les méthodes Get retournent déjà d'autres données.

Ceci est mon contrôleur (juste une application de test pour comprendre comment un client serveur REST & sont mises en œuvre et comment ils communiquent):

public class TeamsController : ApiController 
{ 
    public static List<Team> teams = new List<Team>() 
    { 
     new Team { Kuerzel = "BVB09",Name="Borrusia Dortmund", Stadt="Dortmund"}, 
     new Team { Kuerzel = "RWE",Name="Rot Weiss Essen", Stadt="Essen"} 
    }; 

    public IEnumerable<Team> GetAllTeams() 
    { 
     Console.WriteLine("All teams returned"); 
     return teams; 
    } 

    public Team GetTeamById(int id) 
    { 
     if (id < teams.Count) 
     { 
      Console.WriteLine("Team with ID=" + id + " returned"); 
      return teams[id]; 
     } 
     else 
      return null; 
    } 

    public string PostNewTeam(Team team) 
    { 
     teams.Add(team); 
     Console.WriteLine("Post Team: " + team.ToString()); 
     return "Success"; 
    } 

} 

Répondre

1

utilisation using System.Net.Http; et ajoutez return Request.CreateResponse(HttpStatusCode.OK, "success"); lors du retour de la méthode PostNewItem(); Retour type de la méthode Post() doit être HttpResponseMessage

+0

Merci! C'est ce que je cherchais. Ai-je bien compris que le second paramètre (T) est le corps du message HTTP? – Marv

0

Vous pouvez essayer ceci:

public IHttpActionResult PostNewTeam(Team team) 
{ 
    teams.Add(team); 
    // Console.WriteLine("Post Team: " + team.ToString()); 
    return this.StatusCode(HttpStatusCode.Created); 
} 
+0

Peut-être que j'aurais dû le rendre un peu plus visible: je ne peux utiliser que .net 4.0 donc je n'ai pas accès à 'IHttpActionResult' – Marv