|
@@ -5,10 +5,13 @@ using MediaBrowser.Model.Weather;
|
|
|
using System;
|
|
|
using System.IO;
|
|
|
using System.Net;
|
|
|
-using System.Net.Http;
|
|
|
using System.Text;
|
|
|
using System.Threading.Tasks;
|
|
|
-using MediaBrowser.Model.Entities;
|
|
|
+#if WINDOWS_PHONE
|
|
|
+using SharpGIS;
|
|
|
+#else
|
|
|
+using System.Net.Http;
|
|
|
+#endif
|
|
|
|
|
|
namespace MediaBrowser.ApiInteraction
|
|
|
{
|
|
@@ -17,6 +20,14 @@ namespace MediaBrowser.ApiInteraction
|
|
|
/// </summary>
|
|
|
public abstract class BaseHttpApiClient : BaseApiClient
|
|
|
{
|
|
|
+#if WINDOWS_PHONE
|
|
|
+ public BaseHttpApiClient()
|
|
|
+ {
|
|
|
+ HttpClient = new GZipWebClient();
|
|
|
+ }
|
|
|
+
|
|
|
+ private WebClient HttpClient { get; set; }
|
|
|
+#else
|
|
|
public BaseHttpApiClient(HttpClientHandler handler)
|
|
|
: base()
|
|
|
{
|
|
@@ -26,6 +37,7 @@ namespace MediaBrowser.ApiInteraction
|
|
|
}
|
|
|
|
|
|
private HttpClient HttpClient { get; set; }
|
|
|
+#endif
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets an image stream based on a url
|
|
@@ -501,6 +513,16 @@ namespace MediaBrowser.ApiInteraction
|
|
|
postContent += "&password=" + password;
|
|
|
}
|
|
|
|
|
|
+#if WINDOWS_PHONE
|
|
|
+ HttpClient.Headers["Content-Type"] = "application/x-www-form-urlencoded";
|
|
|
+ var result = await HttpClient.UploadStringTaskAsync(url, "POST", postContent);
|
|
|
+
|
|
|
+ var byteArray = Encoding.UTF8.GetBytes(result);
|
|
|
+ using (MemoryStream stream = new MemoryStream(byteArray))
|
|
|
+ {
|
|
|
+ return DeserializeFromStream<AuthenticationResult>(stream);
|
|
|
+ }
|
|
|
+#else
|
|
|
HttpContent content = new StringContent(postContent, Encoding.UTF8, "application/x-www-form-urlencoded");
|
|
|
|
|
|
HttpResponseMessage msg = await HttpClient.PostAsync(url, content).ConfigureAwait(false);
|
|
@@ -509,6 +531,7 @@ namespace MediaBrowser.ApiInteraction
|
|
|
{
|
|
|
return DeserializeFromStream<AuthenticationResult>(stream);
|
|
|
}
|
|
|
+#endif
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
@@ -541,12 +564,18 @@ namespace MediaBrowser.ApiInteraction
|
|
|
/// </summary>
|
|
|
private Task<Stream> GetStreamAsync(string url)
|
|
|
{
|
|
|
+#if WINDOWS_PHONE
|
|
|
+ return HttpClient.OpenReadTaskAsync(url);
|
|
|
+#else
|
|
|
return HttpClient.GetStreamAsync(url);
|
|
|
+#endif
|
|
|
}
|
|
|
|
|
|
public override void Dispose()
|
|
|
{
|
|
|
+#if !WINDOWS_PHONE
|
|
|
HttpClient.Dispose();
|
|
|
+#endif
|
|
|
}
|
|
|
}
|
|
|
}
|