在學習關於Web API的過程中,我創建了(或實際上Visual Studio有)一個簡單的控制器。我也創建了一個WPF程序,可以從Web API的GET()部分讀取,但我無法訪問其他人。從控制檯應用程序訪問Web API
我試了很多,發現很多博客和網頁說:「就這樣做......」但沒有任何工作。我究竟做錯了什麼?
MVC部分:
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;
}
}
}
而且從我的控制檯應用程序實際工作的方法:
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);
}
剛剛停止的方法:
如果我刪除EnsureSuccessStatusCode
我會拿回以下內容:
SS = 「{\」 消息\ 「:\」 的請求的資源不支持HTTP 法 '把' \。 「}」
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();
}
我怎麼會寫其他的方法我的訪問?
這是否有幫助? http://www.asp.net/web-api/overview/advanced/calling-a-web-api-from-a-net-client –