allora, ho modificato come da tuo suggerimento, ed ottengo la risposta dal server:
codice:
   async void OnButton_Clicked(object sender, EventArgs args)
        {
            Item book = new Item();
            //book.Title = Titolo.Text;
            book.Title = "CIAO";
            MockDataStore mds = new MockDataStore(Costanti.addBook);
            string resp = await mds.AddItemAsync(book);
            Console.WriteLine(resp);
        }
il mio problema adesso è che ottengo sempre un array vuoto in risposta.
come se non avessi mandato nulla:
codice:
        public async Task<string> AddItemAsync(Item item)
        {
            HttpClient client = new HttpClient();
            var uri = new Uri(Costanti.addBook);
            string json = JsonConvert.SerializeObject(item);
            Console.WriteLine(json);
            var content = new StringContent(json, System.Text.Encoding.UTF8, "application/json");
            HttpResponseMessage response = await client.PostAsync(uri, content);
            String responseJson = await response.Content.ReadAsStringAsync();
            return responseJson;
        }
in console vedo questo:
codice:
2018-12-03 11:37:21.252517+0100 Book.iOS[15499:1152549] {"Id":null,"Title":"CIAO","Author":null,"Editor":null,"Price":null,"Isbn":null,"Note":null}

2018-12-03 11:37:21.503325+0100 Book.iOS[15499:1152549] array(0) {
}
quindi qualche dato dovrei averglielo inviato, ma in risposta sembra di no.