C#HttpClient异常错误

C#HttpClient异常错误,c#,windows-8,windows-phone-8,dotnet-httpclient,C#,Windows 8,Windows Phone 8,Dotnet Httpclient,我有以下代码,在WindowsPhone8上运行时没有问题,但在Windows8上运行会导致错误 错误: Exception received while submitting the payload: at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAn

我有以下代码,在WindowsPhone8上运行时没有问题,但在Windows8上运行会导致错误

错误:

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)
提交负载时收到异常:在System.Runtime.CompilerServices.TaskWaiter.ThrowForNonSuccess(任务任务)时
在System.Runtime.CompilerServices.TaskWaiter.HandleNonSuccessAndDebuggerNotification(任务任务)中
在System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()中
在c:\Users\foo\u 000\Documents\GitHub\FooProject\HTTPHelper.cs中的FooProject.HTTPHelper.d\uu a.MoveNext()处:第135行
内部异常是:在System.Net.ConnectStream.CloseInternal(布尔内部调用,布尔中止)
位于System.Net.ConnectStream.System.Net.ICloseEx.CloseEx(CloseExState closeState)
在System.Net.ConnectStream.Dispose(布尔处理)中
在System.IO.Stream.Close()处
在System.Net.Http.HttpClientHandler.c__显示Class8.b__6(任务)
代码:

string jsonPayload=”“;
使用(HttpClient HttpClient=new HttpClient())
{
尝试
{
//将JSON负载转换为gzip字节数组
字节[]有效载荷=压缩字节(jsonPayload);
如果(有效负载!=null)
{
HttpRequestMessage请求=新的HttpRequestMessage(HttpMethod.Post,Config.Instance().TrackingServer);
request.Content=newbytearraycontent(有效载荷);
Add(“内容编码”,“gzip”);
Add(“内容类型”、“应用程序/json”);
HttpResponseMessage response=等待httpClient.SendAsync(请求);
返回(int)response.StatusCode;
}
其他的
{
返回0;
}
}
捕获(System.e例外)
{
Logger.Log(“提交有效负载时收到异常:”+e.StackTrace);
如果(例如,InnerException!=null)
{
Log(“内部异常为:”+e.InnerException.StackTrace);
}
返回0;
}
}
对于Windows Phone 8应用程序,我正在引用NuGet存储库中的Microsoft HttpClient。 对于Windows 8,我已经可以看到System.Net和System.Net.Http包

出于某种原因,运行在手机和Windows8平板电脑(模拟器)上的相同代码会抛出错误


我在Windows 8上使用HttpClient时是否遗漏了任何内容?

我添加了以下代码,它工作起来非常神奇

request.Content.Headers.Add("Content-Length", payload.Length.ToString());
我不知道为什么在WindowsPhone8上没有这一行就成功了

但它奏效了

request.Content.Headers.Add("Content-Length", payload.Length.ToString());