我正在致電Web API
從MVC5
服務使用HttpClient
。我首先創建了一個MVC
Controller
,Get
方法與HttpClient
一起工作,但現在我必須將邏輯移動到服務類中,並且我在async
操作中遇到錯誤,並在Get()
方法中返回書籍列表。如何創建客戶端WebService來調用API?
我是否需要使用HttpWebRequest
而不是服務類?
有人可以幫助我解決這個問題。
API的get()
[HttpGet]
[Route("api/books")]
public IHttpActionResult Get()
{
IEnumerable<BookDTO> books;
books = from b in db.Books
select new BookDTO()
{
Id = b.Id,
Title = b.Title,
AuthorName = b.Author.Name
};
return Ok(books);
}
客戶bookService的
HttpClient client;
public IEnumerable<Book> GetBooks()
{
client.DefaultRequestHeaders.Add("Authorization", "Bearer " + MyToken.myToken);
HttpResponseMessage responseMessage = client.GetAsync(url).Result;
if (responseMessage.IsSuccessStatusCode)
{
var responseData = responseMessage.Content.ReadAsStringAsync().Result;
var books = JsonConvert.DeserializeObject<IEnumerable<Book>>(responseData);
return books;
}
}
它也問我有if
體後return
?
你的方法必須返回IEnumerable的(可能爲null)在所有可能的情況,目前它只是做這裏面你的if語句 –