异常:
“System.AggregateException”类型的未经处理的异常在 mscorlib.dll 中发生
发起请求的代码:
StoreBusinessDataDTO dto = new StoreBusinessDataDTO { XMLData = this.GetXmlFileByteData(tmpFileName) }; string requestUrl = string.Join("", new string[] { config.AppSettings.Settings["CloundURL"].Value, "/api/webmemberapi/SyncClientBizData" }); string postJsonVal = JsonConvert.SerializeObject(dto); HttpContent httpContent = new StringContent(postJsonVal); httpContent.Headers.ContentType = new MediaTypeHeaderValue("application/json"); //httpContent.Headers.ContentLength = Encoding.UTF8.GetBytes(postJsonVal).Length; var httpClient = new HttpClient(); var responseJson = httpClient.PostAsync(requestUrl, httpContent).Result.Content.ReadAsStringAsync().Result; ClientResult resultobj = JsonConvert.DeserializeObject<ClientResult>(responseJson); if (resultobj.Success) { ... }
使用webclient httpwebrequest等都是一样,但是我使用其他的方式却是正常的,服务器端的方法是没问题的。
真是老革命遇到新问题啊。还请各位大神指导!@dudu,是否辛苦看一下。谢谢
Cache-Control=no-cache
Pragma=no-cache
Content-Type=application/json; charset=utf-8
Expires=-1
Server=Microsoft-IIS/7.5
X-AspNet-Version=4.0.30319
X-Powered-By=ASP.NET
Date=Thu, 30 Jul 2015 10:38:39 GMT
Connection=keep-alive
Content-Length=58
补充大致分析是需要加 "Cache-Control=no-cache"这些header.可是学艺不精,咋加呢
使用Fiddle监视你的程序发起的请求,和其他工具发起的正常请求,对比差异。。http无状态,所以只要保证提交的请求一样,那么结果就应该是一样的。
改用await,出错时你会看到具体的错误信息
多谢老大及时出现。await 加在哪里呢。汗! 我是像用2.0一样用4.5的...
@DataCool:
await httpClient.PostAsync(requestUrl, httpContent).Result.Content.ReadAsStringAsync();
上层方法要加上async Task。
@dudu:
哦,知道了。先下班了回去慢慢调试。谢谢
多谢各位热心的支持。原因已经查明,是网络环境的问题。换个宽带就好了。代码一句不用改。什么破“艾谱宽带”啊!!!