0
私はオンラインのサンプルを見ていましたが、C#WEB APIサービスとC#コンソールアプリケーションをクライアントとして使用する製品のチュートリアルを見つけましたが、サービス内のすべての製品は、しかし、それはクライアントからそれを呼び出す方法を教えていません取得するには:C#クライアントのWeb APIからGetAllメソッドを呼び出す
public IEnumerable<Product> GetAllProducts()
{
...
}
他のCRUDメソッドはので、私はそれを呼び出す方法を混乱していたIHttpActionResultを使用して宣言します。
using (var client = new HttpClient())
{
client.BaseAddress = new Uri("http://localhost:59888/");
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
// HTTP GET ALL
HttpResponseMessage response = await client.GetAsync("api/products");
if (response.IsSuccessStatusCode)
{
List<Model.Product> products = await.response.Content.ReadAsAsync<IEnumerable<Model.Product>();
}
}
これは私に構文エラーを与える:
は、だから私のクライアントで私は盲目的に明らかに間違っている次のことをやって呼び出そうとしました。だから私はそれをどのようにコード化するのですか?サーバー、クライアントコード、またはその両方を変更する必要はありますか?コードであり、この作品単一の製品については:
// HTTP GET Specific Product
response = await client.GetAsync("api/products/1");
if (response.IsSuccessStatusCode)
{
Model.Product product = await response.Content.ReadAsAsync<Model.Product>();
}
とサーバは次のとおりです。
public IHttpActionResult GetProduct(int id)
{
var product = repository.GetByID(id);
if (product != null)
return Ok(product);
else
return NotFound();
}
ジー)私はダム私は今、この記事を削除することができますおかげで、明らかにIEnumerableをリストからジェネリックリストに暗黙的にキャストすることはできませんが、私は – Glen
1つを把握します。しかし、あなたは '.ToListを(追加することができます'をIEnumerableの最後に追加してリストとして取得します。私は 'var'に変更したので、左は' IEnumerable> '型でなければなりません。これはその行にエラーを引き起こすはずです。 –