如何使用HttpClient呼叫ASP.NET Web API?
若有一個ASP.NET Web API程式如下:
public class EmployeesController : ApiController {
static List<string> employees = new
List<string> { "Mary" , "Candy" , "Lilly" , "Betty" , "Jessica" };
public IEnumerable<string> Get( ) {
return employees;
}
public string Get( int id ) {
return employees[ id ];
}
public void Post( [FromBody]string value ) {
employees.Add( value );
}
public void Put( int id , [FromBody]string value ) {
employees[ id ] = value;
}
public void Delete( int id ) {
employees.RemoveAt( id );
}
}
我們可以使用HttpClient來進行呼叫,以下範例在Console 程式呼叫Get:
static async void Gettest( ) {
HttpClient client = new HttpClient( );
client.BaseAddress = new Uri( "http://localhost:25201/" );
HttpResponseMessage resp = client.GetAsync( "api/employees" ).Result;
IEnumerable<string> data = null;
if ( resp.IsSuccessStatusCode ) {
data = resp.Content.ReadAsAsync<IEnumerable<string>>( ).Result;
foreach ( var item in data ) {
Console.WriteLine( item);
}
}
}
POST,新增一筆
var client = new HttpClient( );
client.BaseAddress = new Uri( @"http://localhost:25201/" );
var response = await client.PostAsJsonAsync( "api/employees" , "hahaha" );
if ( response.IsSuccessStatusCode ) {
Console.WriteLine( "Inserted");
}
}
PUT,修改第一筆
var client = new HttpClient( );
client.BaseAddress = new Uri( @"http://localhost:25201/" );
var response = await client.PutAsJsonAsync( "api/employees/0" , "new xxx" );
if ( response.IsSuccessStatusCode ) {
Console.WriteLine( "updated" );
}
}
DELETE第一筆
static async void deletetest( ) {
var client = new HttpClient( );
client.BaseAddress = new Uri( @"http://localhost:25201/" );
var response = await client.DeleteAsync( "api/employees/0" );
if ( response.IsSuccessStatusCode ) {
Console.WriteLine( "deleted" );
}
}
沒有留言:
張貼留言