关于使用asihttprequest请求无响应问题
2016-01-21 10:04
543 查看
最近在测试环境发现使用asihttprequest连续访问2次以上的请求,非第一个请求如果包含表单文件post的话,如果和前一个请求相隔比较短的话,会有服务器无响应的情况发生。(生产环境使用https却发现不存在这种情况,测试使用的http)
刚开始以为可能的确是服务器接口有问题了,因为这种错误一般就是服务器的问题。但是后来发现使用其他方式请求,如使用fiddler模拟请求服务器是正常的,无论多少次。
于是对设备进行抓包。发现使用asihttprequest请求时,会复用上次请求的tcp连接,也就是长连接的概念。所以在request的header里面加上connection 为close的配置,发现错误依旧,抓包也发现header里还是keep-alive的。说明配置没生效。接着抓包研究了几天,也查询了asihttprequest框架的一些文档,发现shouldAttemptPersistentConnection 这个属性可以于是对设备进行抓包。发现使用asihttprequest请求时,会复用上次请求的tcp连接,也就是长连接的概念。所以在request的header里面加上connection
为close的配置,发现错误依旧,抓包也发现header里还是keep-alive的。说明配置没生效。接着抓包研究了几天,也查询了asihttprequest框架的一些文档,发现shouldAttemptPersistentConnection 这个属性可以设置request为短连接。
验证后发现故障消失,抓包也发现每次请求都新起一个端口来连接。
总结,一开始想设置短连接的思路是对的,可是常规设置无效,还是要参考框架资料才行。双管齐下研究问题。另外对于这些网络底层问题,抓包分析的确重要也直观。先是用了charles发现故障消失,后来发现应该是charles的代理之类。换成wireshark分析就重现问题了,所以还是要使用wireshark这种对于软件没有影响的东东观察才行。特此记录。
刚开始以为可能的确是服务器接口有问题了,因为这种错误一般就是服务器的问题。但是后来发现使用其他方式请求,如使用fiddler模拟请求服务器是正常的,无论多少次。
于是对设备进行抓包。发现使用asihttprequest请求时,会复用上次请求的tcp连接,也就是长连接的概念。所以在request的header里面加上connection 为close的配置,发现错误依旧,抓包也发现header里还是keep-alive的。说明配置没生效。接着抓包研究了几天,也查询了asihttprequest框架的一些文档,发现shouldAttemptPersistentConnection 这个属性可以于是对设备进行抓包。发现使用asihttprequest请求时,会复用上次请求的tcp连接,也就是长连接的概念。所以在request的header里面加上connection
为close的配置,发现错误依旧,抓包也发现header里还是keep-alive的。说明配置没生效。接着抓包研究了几天,也查询了asihttprequest框架的一些文档,发现shouldAttemptPersistentConnection 这个属性可以设置request为短连接。
验证后发现故障消失,抓包也发现每次请求都新起一个端口来连接。
总结,一开始想设置短连接的思路是对的,可是常规设置无效,还是要参考框架资料才行。双管齐下研究问题。另外对于这些网络底层问题,抓包分析的确重要也直观。先是用了charles发现故障消失,后来发现应该是charles的代理之类。换成wireshark分析就重现问题了,所以还是要使用wireshark这种对于软件没有影响的东东观察才行。特此记录。
相关文章推荐
- win8.1下 cocos2dx-js 多线程http请求的问题
- 后续博客移至 简书 http://www.jianshu.com/users/97cf7df43152/timeline
- JAVA并发处理经验(四)并行模式与算法7:AIO网络编程
- android 发送http请求
- 2016太原网络营销师郭文军分享网站图片代码优化
- Android Volley框架的使用(四)图片的三级缓存策略(内存LruCache+磁盘DiskLruCache+网络Volley)
- HTTP 头部解释
- HTTP协议详解(真的很经典)
- TCP/IP源码学习(52)——TCP的连接过程的实现(1)
- TCP/UDP相关知识总汇
- http://www.mossle.com/wiki/13.lemon-devguide/0008.modeler
- 关于iOS9 HTTP不能正常使用的解决方法
- http://nxlhero.blog.51cto.com/962631/1666250?plg_nld=1&plg_uin=1&plg_auth=1&plg_nld=1&plg_usr=1&plg_vkey=1&plg_dev=1
- http://www.ibm.com/developerworks/cn/java/j-lo-hotswapcls/
- 阿岳之_httpd2.4配置篇
- TCP demo
- “台湾网络被大陆表情包碾压”事件意义被低估
- [神经网络]1.1-Using neural nets to recognize handwritten digits-Perceptrons(翻译)
- android网络请求 post
- 计算机网络分类