最近想把一个简单的安卓APP重写一下,写的过程中就涉及到和服务端的交互,在1.0版本里面使用的是最传统的HttpClient模式来进行传输数据,我想当然的认为也可以使用Volley来替换。
原来的代码,获取参数,使用键值对形式进行存储,并转成utf-8的形式,这样一来在请求里面的content就是一堆ASCII码,而且Content-Type是application/x-www-form-urlencoded,很明显Volley不适合这样来处理了
public static String post(String url, HashMap<String, String> params)throws IOException{
String result = null;
HttpPost post = new HttpPost(url);
if(null != params){
List<NameValuePair> pairList = new ArrayList<NameValuePair>();
for (Entry<String, String> paramPair : params.entrySet()) {
NameValuePair pair = new BasicNameValuePair(paramPair.getKey(), paramPair.getValue());
pairList.add(pair);
}
HttpEntity entity = new UrlEncodedFormEntity(pairList, HTTP.UTF_8);
post.setEntity(entity);
}
HttpResponse response = httpClient.execute(post);
if(HttpStatus.SC_OK == response.getStatusLine().getStatusCode()){
result = EntityUtils.toString(response.getEntity());
}
return result;
}
所以引入了okhttp3这个新包,查看源码发现有一个类FormBody,使用它就可以完成上面的相同的功能,我写了一个简单的异步任务去处理,服务端获取到正确的响应
RequestBody requestBody = new FormBody.Builder()
.addEncoded("username", params[0])
.addEncoded("password", params[1])
.addEncoded("client","android")
.build();
分享到:
相关推荐
在IT领域,Android开发是当前热门且需求量大的技能之一。本资源集合了"Mars"系列的五季Android开发视频教程,覆盖了从初学者到进阶者的全方位学习路径。下面将对每一季的教程内容进行详细介绍,帮助你更好地理解和...
【标题】"Android应用源码之WXTools"指的是一个开源项目,主要针对的是微信相关的工具类库,可能是为了帮助开发者更方便地集成微信功能到自己的Android应用中。这个项目可能是由开发者分享出来的一个学习和参考资源...
- **发展历程**:自2008年第一款Android手机发布以来,Android 已经发展成为全球最大的移动操作系统之一。 - **版本更新**:Google 不断推出新的Android版本,每个版本都有自己的代号,如Pie(9.0)、Q(10.0)、R...
本压缩包包含的是一个Android平台上的电子书阅读器项目的源码,是专为开发者和学习者准备的一个实践项目。这个项目对于那些希望深入理解Android应用开发,尤其是涉及到电子书阅读功能实现的Java和Android程序员来说...
自2008年第一款Android设备发布以来,Android系统已经成为了全球最广泛使用的移动操作系统之一。Android的发展历程中,不断引入新特性以满足市场的需求变化,如Material Design设计语言、Doze模式电池优化等。 ####...
本资源“Android应用源码之ExpressTrack.rar”提供了名为“ExpressTrack”的应用的源代码,这对于想要研究物流跟踪或者相关地理位置服务的开发者来说是一个宝贵的参考资料。 ExpressTrack很可能是一个专注于快递...
《Android 资料大汇总》是一份集成了Android学习与开发资源的宝贵资料库,旨在帮助开发者和学习者深入理解和掌握Android平台的相关知识。这份资料包包含了两本电子书,分别是《Android程序员指南》和《Android 1.0 ...
《Android应用源码之星座连萌》是一款基于Android平台的休闲游戏,它的源代码提供了深入理解Android应用开发的宝贵资源。这款应用可能结合了星座知识、消除类游戏玩法以及萌系元素,旨在吸引广大用户群体,尤其是...
- **Activity**:表示用户界面的一个屏幕,是Android四大组件之一。 - **Service**:用于执行后台任务,如音乐播放、数据下载等。 - **Broadcast Receiver**:用于接收来自系统和其他应用程序的广播消息。 - **...
【Android开发教程】\n\nAndroid,作为全球最受欢迎的移动操作系统之一,自2008年发布以来,已经发展成为一个庞大的生态系统,涵盖了智能手机、平板电脑、智能电视等多个领域。本教程将带你深入了解Android开发,从...
Android作为全球最大的移动操作系统之一,为开发者提供了丰富的API和工具,使得创建功能强大的应用成为可能。本书《Android应用开发揭秘清晰版(1-150).pdf》可能包含了以下方面的内容: 1. **Android基础**:介绍...
- **Eclipse**: 曾是Android开发的主要IDE之一,现在虽然不如Android Studio流行,但在某些情况下仍然被使用。 **2. UI设计与布局** - **ListView**: 常用于展示大量列表数据,如商品列表、新闻列表等。 - **...
自此以后,Android逐渐成为全球市场份额最高的移动操作系统之一。 #### 二、Android开发环境搭建 ##### 2.1 开发工具的选择 对于初学者来说,推荐使用Android Studio作为Android应用开发的主要IDE(集成开发环境)...