首页 新闻 会员 周边 捐助

园豆统统拿去,httpclient post json 总是出现异常

0
悬赏园豆:200 [已解决问题] 解决于 2015-07-31 10:20

异常:

“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.可是学艺不精,咋加呢

数据酷软件的主页 数据酷软件 | 初学一级 | 园豆:130
提问于:2015-07-30 18:16
< >
分享
最佳答案
0

使用Fiddle监视你的程序发起的请求,和其他工具发起的正常请求,对比差异。。http无状态,所以只要保证提交的请求一样,那么结果就应该是一样的。

收获园豆:50
幻天芒 | 高人七级 |园豆:37205 | 2015-07-31 08:57
其他回答(3)
0

改用await,出错时你会看到具体的错误信息

收获园豆:100
dudu | 园豆:30925 (高人七级) | 2015-07-30 18:22

多谢老大及时出现。await 加在哪里呢。汗!  我是像用2.0一样用4.5的...

支持(0) 反对(0) 数据酷软件 | 园豆:130 (初学一级) | 2015-07-30 18:30

@DataCool: 

await httpClient.PostAsync(requestUrl, httpContent).Result.Content.ReadAsStringAsync();

上层方法要加上async Task。

支持(0) 反对(0) dudu | 园豆:30925 (高人七级) | 2015-07-30 18:35

@dudu: 

哦,知道了。先下班了回去慢慢调试。谢谢

支持(0) 反对(0) 数据酷软件 | 园豆:130 (初学一级) | 2015-07-30 18:41
0

看看我的一个小测试吧, HttpClient访问nodejs开发的restful API 

http://www.cnblogs.com/visonme/p/4637764.html

收获园豆:50
visonme | 园豆:1674 (小虾三级) | 2015-07-30 18:34
0

多谢各位热心的支持。原因已经查明,是网络环境的问题。换个宽带就好了。代码一句不用改。什么破“艾谱宽带”啊!!!

数据酷软件 | 园豆:130 (初学一级) | 2015-07-31 10:18
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册