Android网络开发之HttpURLConnection

简介: 转自博客: http://www.cnblogs.com/fengzhblog/archive/2013/07/12/3185498.html       http是一个可靠的传输,建立在TCP/IP连接之上,缺省端口是80,其他端口号也可以用。

转自博客:

http://www.cnblogs.com/fengzhblog/archive/2013/07/12/3185498.html

 

    http是一个可靠的传输,建立在TCP/IP连接之上,缺省端口是80,其他端口号也可以用。Android可以用HttpURLConnection或HttpClient接口来开发http程序。

    http通信使用最多的是Get和Post。Post和Get的不同之处在于Get的参数放在URL字串中,而Post的参数放在http请求数据中。

    HttpURLConnection继承自URLConnection,都是抽象类,无法直接实例化对象。其对象主要通过URL的openConnection方法获得。

    openConnection方法只创建URLConnection或HttpURLConnection实例,但是不进行真正的连接操作,并且每次openConnection都创建一个新的实例。

    在连接之前,可以设置一些属性,比如超时时间等。

    HttpURLConnection默认使用Get方法,如果要使用Post方法,则需要使用setRequestMethod方法


  1. // 示例代码:通过Post方式发送请求
  2. URL url = new URL(“http://www.google.com”);
  3. HttpURLConnection conn = (HttpURLConnection) url.openConnection();
  4. // 设置输入/出流
  5. conn.setDoOutput(true);
  6. conn.setDoInput(true);
  7. // 设置请求方式为Post
  8. conn.setRequestMethod(“POST”);
  9. // Post请求不能使用缓存
  10. conn.setUseCaches(false);
  11. conn.setInstanceFollowRedirects(true);
  12. // 设置Content-type
  13. conn.setRequestProperty(“Content-Type”,“application/x-www-form-urlencoded”);

  14. // 在调用getOutputStream时会隐式调用conn.connect()
  15. DataOutputStream dos = new DataOutputStream(conn.getOutputStream());
  16. String content = “name=+ URLEncoder.encode(“Jake”,“gb2312”);
  17. dos.writeBytes(content);
  18. dos.flush();
  19. dos.close();
  20. // 连接完成之后可以关闭这个连接
  21. conn.disconnect();

  1. // 示例代码:读取网页上的内容
  2. InputStreamReader isr = new InputStreamReader(conn.getInputStream());
  3. BufferedReader br = new BufferedReader(isr);
  4. String line = null;
  5. while(((line = br.readLine()) != null)) {}
  6. // 关闭连接
  7. isr.close();
  8. conn.disconnect();

  1. // 示例代码:获取网络上的一张图片

  2. conn.setDoInput(true);
  3. conn.connect(); // 这条语句要不(待定)
  4. InputStream is = conn.getInputStream();
  5. // 将InputStream数据转换成Bitmap
  6. Bitmap bitmap = BitmapFactory.decodeStream(is);
  7. // 关闭数据流
  8. is.close();


参考博客:

http://www.cnblogs.com/yaozhenfa/p/3410550.html

http://zjutsoft.iteye.com/blog/1313754

相关文章
|
API 数据处理 Android开发
Android网络请求演变:从Retrofit到Flow的转变过程。
通过这个比喻,我们解释了 Android 网络请求从 Retrofit 到 Flow 的转变过程。这不仅是技术升级的体现,更是反映出开发者在面对并发编程问题时,持续探索和迭求更好地解决方案的精神。未来,还会有更多新的技术和工具出现,我们期待一同 witness 这一切的发展。
465 36
|
11月前
|
Web App开发 缓存 JavaScript
Android网络小说阅读器的实现
小说阅读Demo,。此Demo使用Jsoup解析HTML,实现小说数据抓取(数据源自网络),并包含自定义View、六章小说缓存等功能,但未实现下载。项目还包括屏幕适配、字体设置等,借助第三方框架完成优化。以下是主页、详情页、阅读页等界面展示。
340 0
|
XML JavaScript Android开发
【Android】网络技术知识总结之WebView,HttpURLConnection,OKHttp,XML的pull解析方式
本文总结了Android中几种常用的网络技术,包括WebView、HttpURLConnection、OKHttp和XML的Pull解析方式。每种技术都有其独特的特点和适用场景。理解并熟练运用这些技术,可以帮助开发者构建高效、可靠的网络应用程序。通过示例代码和详细解释,本文为开发者提供了实用的参考和指导。
504 15
|
安全 网络安全 Android开发
安卓与iOS开发:选择的艺术网络安全与信息安全:漏洞、加密与意识的交织
【8月更文挑战第20天】在数字时代,安卓和iOS两大平台如同两座巍峨的山峰,分别占据着移动互联网的半壁江山。它们各自拥有独特的魅力和优势,吸引着无数开发者投身其中。本文将探讨这两个平台的特点、优势以及它们在移动应用开发中的地位,帮助读者更好地理解这两个平台的差异,并为那些正在面临选择的开发者提供一些启示。
251 56
|
安全 Java API
深入探索Java网络编程中的HttpURLConnection:从基础到进阶
本文介绍了Java网络编程中HttpURLConnection的高级特性,包括灵活使用不同HTTP方法、处理重定向、管理Cookie、优化安全性以及处理大文件上传和下载。通过解答五个常见问题,帮助开发者提升网络编程的效率和安全性。
622 9
|
网络协议 Shell 网络安全
解决两个 Android 模拟器之间无法网络通信的问题
让同一个 PC 上运行的两个 Android 模拟器之间能相互通信,出(qiong)差(ren)的智慧。
394 3
|
安全 网络协议 算法
Android网络基础面试题之HTTPS的工作流程和原理
HTTPS简述 HTTPS基于TCP 443端口,通过CA证书确保服务器身份,使用DH算法协商对称密钥进行加密通信。流程包括TCP握手、证书验证(公钥解密,哈希对比)和数据加密传输(随机数加密,预主密钥,对称加密)。特点是安全但慢,易受特定攻击,且依赖可信的CA。每次请求可能复用Session ID以减少握手。
354 2
|
缓存 网络协议 Android开发
Android网络面试题之Http1.1和Http2.0
HTTP/1.1 引入持久连接和管道机制提升效率,支持分块传输编码和更多请求方式如PUT、PATCH。Host字段指定服务器域名,RANGE用于断点续传。HTTP/2变为二进制协议,实现多工处理,头信息压缩和服务器推送,减少延迟并优化资源加载。HTTP不断发展,从早期的简单传输到后来的高效交互。
374 0
Android网络面试题之Http1.1和Http2.0
|
安全 网络安全 Android开发
探索安卓开发之旅:从新手到专家网络安全与信息安全:防范网络威胁,保护数据安全
【8月更文挑战第29天】在这篇技术性文章中,我们将踏上一段激动人心的旅程,探索安卓开发的世界。无论你是刚开始接触编程的新手,还是希望提升技能的资深开发者,这篇文章都将为你提供宝贵的知识和指导。我们将从基础概念入手,逐步深入到安卓开发的高级主题,包括UI设计、数据存储、网络通信等方面。通过阅读本文,你将获得一个全面的安卓开发知识体系,并学会如何将这些知识应用到实际项目中。让我们一起开启这段探索之旅吧!
|
Java Android开发 Kotlin
Android项目架构设计问题之要在Glide库中加载网络图片到ImageView如何解决
Android项目架构设计问题之要在Glide库中加载网络图片到ImageView如何解决
227 0
下一篇
开通oss服务