Android网络请求的最优解决方案(HttpURLConnection 与HttpClient)
安卓的网络请求实在是坑太多了,像什么字符集引起的中文乱码,就不说了。
各种隐藏的坑,越深入越觉得可怕。
比如:
URL url = new URL(UrlString);
HttpURLConnection urlConn = (HttpURLConnection)url .openConnection();
这里的UrlString如果直接用类似http://abc.com/中文.php
就会报错。
必须写成URL编码的格式,http://abc.com/%e4%b8%ad%e6%96%87.php
才行。
但是:
HttpPost httpRequest = new HttpPost(UrlString);
用这种方法的,就可以直接写http://abc.com/中文.php
没问题。
写成URL编码的格式,http://abc.com/%e4%b8%ad%e6%96%87.php
也没问题。
然后关于传递参数的问题,HttpClient
是用的List<NameValuePair>
,好吧,没问题,但是HttpURLConnection
就必须手动向OutputStream
里写数据,然后POST参数的键值对的字符串都要转码,要考虑=
和&
等等特殊符号,卧槽。
我就想知道,有木有现成的好用的代码示例或者JAVA框架什么的啊。
比如官方的代码示例,第三方的开源框架,一些说明的比较清楚的博客什么的都可以……
(话说官方不是推荐网络请求用HttpURLConnection
写嘛,为毛我感觉真心没HttpClient
好用啊?)
大家都是怎么写的啊?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
http库还是挺多的,可以看看google官方的 volly,或者是 okhttp
在服务与客户端分开使用时,双方统一请求响应编码方式是基本的要求
编码:怪我咯?