using MediaBrowser.Model.DTO; using System; using System.IO; using System.Net; namespace MediaBrowser.ApiInteraction.Portable { public class ApiClient : BaseApiClient { private HttpWebRequest GetNewRequest(string url) { return HttpWebRequest.CreateHttp(url); } /// /// Gets all users /// public void GetAllUsersAsync(Action callback) { string url = ApiUrl + "/users"; GetDataAsync(url, callback); } private void GetDataAsync(string url, Action callback) { GetDataAsync(url, callback, SerializationFormat); } private void GetDataAsync(string url, Action callback, SerializationFormats serializationFormat) { if (url.IndexOf('?') == -1) { url += "?dataformat=" + serializationFormat.ToString(); } else { url += "&dataformat=" + serializationFormat.ToString(); } HttpWebRequest request = GetNewRequest(url); request.BeginGetResponse(new AsyncCallback(result => { T value; using (WebResponse response = (result.AsyncState as HttpWebRequest).EndGetResponse(result)) { using (Stream stream = response.GetResponseStream()) { value = DeserializeFromStream(stream); } } callback(value); }), request); } } }