Android笔记 (2): 创建应用、Volley、Postman

本来想先写反编译系列,但是拿别人的应用(如360优化大师等)来作为案列,感觉并不适合,因此在反编译系列之前,先做一个简单的应用,其中包括:FastJson,Volley等库,同时实现Volley库的封装。

该项目的目的是作为反编译系列的素材。

创建项目

输入包名等信息
下一步选API 14

到下一步选择新建一个Empty Activity,然后Next,出现如下界面,直接Finish。(这一步不重要,也可以在项目建好后自己生成。)

自动创建MainActivity

在Android Stuido中,我比较喜欢Project视图,更接近文件系统目录结构。

选择"Project"

Android Studio项目目录结构介绍 - OPEN 开发经验库

引入Volley

既然该项目中用到Volley,那学习地址必不可少了。
网络请求库Volley详解 - 泡在网上的日子

这里引用最新的Volley,将下面一行代码加入到VolleyDemo/app/build.gradle中的dependencies里。

compile 'com.mcxiaoke.volley:library:1.0.19'

Volley 简单使用

既然是有网络请求,那么别忘了给AndroidManifest.xml加上网络权限。

<uses-permission android:name="android.permission.INTERNET" />

在MainActivity中添加如下方法:

private void initData() {
    String url = "http://www.baidu.com/";
    StringRequest request = new StringRequest(Request.Method.GET, url, new Response.Listener<String>() {
        @Override
        public void onResponse(String s) {
            Log.d("demo", "response = " + s);
        } 
   }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError volleyError) {
            Log.e("demo", "onErrorResponse: " + volleyError.getMessage());
        }
    }); 
   Volley.newRequestQueue(this).add(request);
}

onCreate方法中调用即可。

@Overrideprotected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    initData();
}

编译运行发现流程已经跑通。代码比较简单,不过多解释。


log截图

数据来源

通过上面的验证,数据流已经OK,现在要开始拿真正的数据来做事情了。
因为项目比较简单,单独做个服务端比较浪费资源。因此这里我用Android应用架构之Retrofit使用文章中提到的 http://ip.taobao.com/service/getIpInfo.php?ip=21.22.11.33 来作为实例使用。
发出一个简单的http GET请求,即可获得服务器返回的数据,在浏览器上访问同理。但是,如果碰到需要Post请求的接口怎么办?如果通过写代码调用API,是可以做到,但是个人感觉太麻烦了。因此这里提一下api测试中的一种便利工具:PostMan。

PostMan

如何在Chrome下使用Postman进行rest请求测试

分别在浏览器和浏览器和Postman上请求上面的接口

浏览器上得到的结果
Postman得到的结果

通过该图可以发现Postman的功能还是很强大的,无论是请求类型,设置Header,Params都非常方便。推荐大家使用该工具来做接口测试。

现在将代码中的url设置为

http://ip.taobao.com/service/getIpInfo.php?ip=21.22.11.33。

编译运行,打出log:

04-02 17:08:33.403 13181-13181/? D/demo: response = {"code":0,"data":{"country":"\u7f8e\u56fd","country_id":"US","area":"","area_id":"","region":"","region_id":"","city":"","city_id":"","county":"","county_id":"","isp":"","isp_id":"","ip":"21.22.11.33"}}

至此,通过volley调用上面的接口已经完成。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 179,323评论 25 708
  • 太长了,还是转载吧...今天在看博客的时候,无意中发现了@Trinea在GitHub上的一个项目Android开源...
    庞哈哈哈12138阅读 20,398评论 3 283
  • 傍晚过菜市场,分不清夕阳和路灯颜色。同青菜腐烂的气味,和时髦女子的体香混杂的空气一样。 肮脏不可用来形容乞讨者,混...
    Lpengpengpeng阅读 350评论 0 7
  • 检讨,作为组长,没有一直督促小组成员,打卡完成自己的小计划。 工作:下午进行了杂草清除,看着干草的种子在我们的干预...
    灸灸微笑阅读 84评论 0 1
  • 每个人身上都有值得学习、欣赏的地方,今天的作业是审视我们身边最常用的人/事/物,我就找三个维度自己最熟悉的...
    静静是我啦阅读 359评论 0 0

友情链接更多精彩内容