J'ai le code suivant qui s'exécute sans problèmes sur Windows Phone 8, mais en cours d'exécution sur Windows 8 entraîne une erreur.C# HttpClient erreur étrange
Erreur:
Exception received while submitting the payload: at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
at FooProject.HTTPHelper.<SubmitRequestToMobileAnalytics>d__a.MoveNext() in c:\Users\foo_000\Documents\GitHub\FooProject\HttpHelper.cs:line 135
Inner Exception is: at System.Net.ConnectStream.CloseInternal(Boolean internalCall, Boolean aborting)
at System.Net.ConnectStream.System.Net.ICloseEx.CloseEx(CloseExState closeState)
at System.Net.ConnectStream.Dispose(Boolean disposing)
at System.IO.Stream.Close()
at System.Net.Http.HttpClientHandler.<>c__DisplayClass8.<GetRequestStreamCallback>b__6(Task task)
code:
string jsonPayload = "<<<Some JSON Payload>>>";
using (HttpClient httpClient = new HttpClient())
{
try
{
//Converting the JSON payload as GZipped byte array
byte[] payload = CompressAsByte(jsonPayload);
if (payload != null)
{
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, Config.Instance().TrackingServer);
request.Content = new ByteArrayContent(payload);
request.Content.Headers.Add("Content-Encoding", "gzip");
request.Content.Headers.Add("Content-Type", "application/json");
HttpResponseMessage response = await httpClient.SendAsync(request);
return (int)response.StatusCode;
}
else
{
return 0;
}
}
catch (System.Exception e)
{
Logger.Log("Exception received while submitting the payload: " + e.StackTrace);
if (e.InnerException != null)
{
Logger.Log("Inner Exception is: " + e.InnerException.StackTrace);
}
return 0;
}
}
Pour Windows Phone 8 App, je référencement Microsoft HttpClient à partir du référentiel NuGet. Pour Windows 8, les paquets System.Net et System.Net.Http sont déjà visibles.
Pour une raison quelconque, le même code s'exécute sur Phone fonctionne et sur Windows 8 Tablet (simulateur), il génère une erreur. Est-ce que je manque quelque chose en utilisant HttpClient sur Windows 8?