进行Android应用开发,其中不得不使用到网络编程,最基本的就是向服务器发送Http请求,并接收从服务器返回的数据,该类数据一般为JSON或XML格式。

向服务器进行请求数据一般有GET、POST两种方式,两者基本类似,以GET居多。本文先讨论使用GET方式向聚合数据API发送请求,以获得手机号码归属地的信息。归属地查询的接口的请求示例为:http://apis.juhe.cn/mobile/get?phone=13429667914&key=您申请的KEY。默认返回的格式为JSON。最后把返回结果显示在TextView上。直接上代码:

public class MainActivity extends Activity {private TextView text;private String url = "http://apis.juhe.cn/mobile/get?phone=13429667914&key=9719c91bd4ac2647c67c6cd067b5cb8e";//向服务器请求的url.private Handler handler = new Handler();//使用Handler更新UI,因为网络操作是在子线程中进行的,子线程不能更新UI,所以只能使用Handler机制;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);text = (TextView) findViewById(id_text);//新建线程Thread,开始网络操作。new Thread() {@Overridepublic void run() {try {URL httpUrl = new URL(url);HttpURLConnection conn = (HttpURLConnection) httpUrl.openConnection();//与服务器建立连接;conn.setReadTimeout(5000);conn.setRequestMethod("GET");//设置请求方式为GETfinal StringBuffer sb = new StringBuffer();//把获取的数据不断存放到StringBuffer中;BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream(), "UTF-8"));//使用reader向输入流中读取数据,并不断存放到StringBuffer中;String line;while ((line = reader.readLine()) != null) {//只要还没有读取完,就不断读取;sb.append(line);//在StringBuffer中添加;}handler.post(new Runnable() {//使用Handler更新UI;当然这里也可以使用sendMessage();handMessage()来进行操作;@Overridepublic void run() {text.setText(sb.toString());//StringBuffer转化为String输出;}});} catch (MalformedURLException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}}.start();}
}

最后返回的结果如截图所示:

。成功接收到从服务器返回的JSON数据。

如果需要返回的数据为XML,只要重新拼装URL即可。如:"http://apis.juhe.cn/mobile/get?phone=13429667914&key=9719c91bd4ac2647c67c6cd067b5cb8e&dtype=xml";最后返回的结果为XML,截图如下:

最后开发者根据需要,可以对XML和JSON进行解析,完成业务需求。

Android网络编程之Http请求服务器数据(GET方式)相关推荐

  1. Android网络编程之Http请求服务器数据(POST方式)

    Android中的网络请求主要有GET和POST方式.POST方式比GET方式更为安全,因为需要发送的消息不是嵌入在url中的,同时能比GET发送更多的数据. 本文讨论使用POST方式向聚合数据API ...

  2. Android 网络编程之HTTPS详解

    前言:HTTPS涉及相关的知识,总是很难的将其归纳总结起来,本文旨在带你学习详细的HTTPS相关知识点,看完本文后,你会了解到以下相关知识点: HTTPS的工作原理 HTTPS为什么要这样设计 密码学 ...

  3. Android 网络编程之OkHttp源码解析

    前言:OkHttp框架是Android的网络请求框架,无数的项目都在使用着这个框架,重要性不言而喻; 本文会将OKHTTP的源码进行拆解,每个部分来单独学习,由简入深,循序渐进,篇幅较长,建议收藏,慢 ...

  4. android网络编程之HttpUrlConnection的讲解--GET请求

    1.服务器后台使用Servlet开发,这里不再介绍. 2.测试机通过局域网链接到服务器上,可以参考我的博客:http://www.cnblogs.com/begin1949/p/4905192.htm ...

  5. Android 网络编程之Http通信

    Android中提供的HttpURLConnection和HttpClient接口可以用来开发HTTP程序.以下是本人在学习中的总结与归纳. 1. HttpURLConnection接口     首先 ...

  6. IOS网络编程之http请求响应篇

    从IOS角度看http url是服务器上资源的一个位置,作为这个规则一个单独的资源可能和很多url有关系,但是一个url不能关联很多资源.但是也有例外的情况,例如当hostname关联一个不稳定的ho ...

  7. C#网络编程之Http请求

    本片篇分享简单介绍C#中的Http请求,前几天帮朋友的项目封装ApiHelper,我粗糙的结果就如下,想想我真的是差的太远了.还有一位架构师也在封装这个Helper , 所以最后的结果当然是使用大牛的 ...

  8. Java网络编程之TCP、UDP

    Java网络编程之TCP.UDP 2014-11-25 15:23 513人阅读 评论(0) 收藏 举报 分类: java基础及多线程(28) 版权声明:本文为博主原创文章,未经博主允许不得转载. J ...

  9. iOS网络编程之Socket

    [深入浅出Cocoa]iOS网络编程之Socket 罗朝辉 (http://blog.csdn.net/kesalin) CC 许可,转载请注明出处 更多 Cocoa 开发文章,敬请访问<深入浅 ...

最新文章

  1. C++两个队列实现一个栈
  2. mysql myisam转innodb_Mysql MyISAM数据库批量转换表引擎为Innodb
  3. LeetCode-剑指 Offer 11. 旋转数组的最小数字
  4. java bat 启动脚本_解析Tomcat的启动脚本--catalina.bat
  5. 深度学习之自编码器(2)Fashion MNIST图片重建实战
  6. java 纳秒 毫秒_golang的time包:秒、毫秒、纳秒时间戳输出方式
  7. 推荐系统:非个性化推荐Non-personalized recommendation
  8. linux内核分析和应用 -- 进程与线程(上)
  9. (转)暴涨、闪崩、分叉,监管,现在是投资机会?
  10. oracle bpm 教学视频,oracle BPM直接更新流程
  11. 深入理解LSTM神经网络
  12. joc杂志影响因子2019_化学sci期刊影响因子排名_国际化学期刊2018最新影响因子_分析测试学报影响因子...
  13. UE4中的委托和事件
  14. B帧对视频清晰度/码率的影响
  15. vue 导出表格到xlsx中
  16. RGB转HSI的代码优化
  17. 从端到边缘,无线技术赋能AI边缘计算处理器
  18. 云计算是什么意思,还是先了解一下云计算技术的基本概念
  19. 想带好团队,要先学会使用GTD
  20. 浅谈数据清洗的一些要素

热门文章

  1. Couchbase 分享 PPT
  2. Ubuntu18.04安装好后 一定要做的N个事情 (一)
  3. 网络编程(wireshare抓数据包及分析、三次握手与四次挥手、数据库sqlite3及操作)笔记-day15
  4. 李一男辞职调查:走出华为的叛逆男人
  5. Android实现类淘宝多图评价
  6. 华硕编程竞赛11月JAVA专场 A题自由弹簧 题解
  7. 微信小程序 - 沉浸式抽屉(非组件)
  8. 申探社:深入互联网广告中的出价模式(上)— 基础出价模式
  9. 2022高压电工考题模拟考试平台操作
  10. OCR识别——百度飞桨PaddleOCR测试及环境搭建详解