Zugang zu web-API über eine Konsole-Anwendung

In den Prozess des Lernens über die web API, die ich erstellt habe (oder eigentlich Visual Studio) und eine einfache Steuerung. Ich habe auch ein WPF-Programm zum Lesen von web-API ' s GET () - Teil, aber ich kann nicht auf die anderen.

Habe ich einiges ausprobiert und festgestellt, viele blogs und Seiten, die sagen: "tun Sie Einfach so...", aber nichts funktioniert. Was mache ich falsch?

MVC-Teil:

namespace MVCWebservice.Controllers
{
    public class LaLaController : ApiController
    {
        //GET: api/LaLa
        public string Get()
        {
            return "Hello from API";
        }

        //GET: api/LaLa/5
        public string Get(int id)
        {
            return "value";
        }

        //POST: api/LaLa
        public void Post([FromBody]string value)
        {
            var a = value;
        }

        //PUT: api/LaLa/5
        public void Put(int id, [FromBody]string value)
        {
            var b = value;
            int c = id;
        }

        //DELETE: api/LaLa/5
        public void Delete(int id)
        {
            int c = id;
        }
    }
}

Und eine Methode aus meiner Konsole-Anwendung, die tatsächlich funktioniert:

private static async Task ReadFromWebApi()
{
    System.Net.Http.HttpClient client = new System.Net.Http.HttpClient();
    client.BaseAddress = new Uri("http://localhost:26176/");
    client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));
    var resp2 = await client.GetAsync("api/LaLa/");
    resp2.EnsureSuccessStatusCode();
    var aaa = resp2.Content;
    string result = await aaa.ReadAsStringAsync();
    Console.WriteLine(result);
}

Einer Methode, die einfach aufhört:

Wenn ich entfernen Sie die EnsureSuccessStatusCode ich werde die folgenden zurück:

ss = "{\"Message\":\"Die angeforderte Ressource nicht unterstützt http
Methode 'PUT'.\"}"

private static async Task SendToWebApi()
{
    System.Net.Http.HttpClient client = new System.Net.Http.HttpClient();
    client.BaseAddress = new Uri("http://localhost:26176/");
    client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));
    Console.WriteLine("-1-");
    var resp2 = client.PutAsync("api/LaLa/", new System.Net.Http.StringContent("Hey", Encoding.UTF8, "application/json")).Result;
    Console.WriteLine("-2-");
    resp2.EnsureSuccessStatusCode();
    var ss = await resp2.Content.ReadAsStringAsync();
}

Wie würde ich es schreiben, mein Zugang zu den anderen Methoden?

Funktioniert diese Hilfe? asp.net/web-api/overview/advanced/...

InformationsquelleAutor Benny Jørgensen | 2015-04-18

Schreibe einen Kommentar