2016-04-19 10 views
0

Importieren, um die Werte des HttpWebResponse festzulegen, der vom Controller zurückgegeben wird, aber ich kann kein HttpWebResponse Objekt erstellen.Zurücksenden einer HttpWebResponse von einer Serveranwendung (REST) ​​

Im Moment möchte ich nur den Statuscode einstellen, aber vielleicht brauche ich bald auch andere Teile der HttpWebResponse Klasse. Alles, was ich jetzt tun kann, ist das Zurückgeben von Strings als Status, was offensichtlich falsch ist, da Get Methoden bereits andere Daten zurückgeben.

Dies ist mein Controller (nur eine Testanwendung zu verstehen, wie ein REST-Server & Client implementiert sind und wie sie kommunizieren):

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"; 
    } 

} 

Antwort

1

Verwendung using System.Net.Http; und return Request.CreateResponse(HttpStatusCode.OK, "success"); während PostNewItem() Methode Rückkehr hinzufügen; Rückgabetyp der Post() -Methode sollte HttpResponseMessage

+0

Dank! Das war was ich gesucht habe. Habe ich richtig verstanden, dass der zweite Parameter (T) der Body der Http Message ist? – Marv

0

Sie können dies versuchen:

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

Vielleicht sollte ich es ein bisschen mehr sichtbar machen: Ich kann nur .net 4.0 verwenden, deshalb habe ich keinen Zugriff auf 'IHttpActionResult' – Marv