Android网络编程之URLConnection&HttpURLConnection
2016-01-13 09:55
218 查看
1.URLConnection
如果数据采用了HTTP协议,可以使用java.net.URLConnection获得这些数据。
在Manifest文件中一定要有:
2.HttpURLConnection
http.net.HttpURLConnection类是另外一种访问HTTP资源的方式。HttpURLConnection类具有完全的访问能力,可以取代HttpGet和HttpPost类。
使用HttpURLConnection类访问HTTP资源的步骤:
(1)使用java.net.URL封装HTTP资源的url,并使用openConnection方法来获得HttpURLConnection对象。
(2)设置请求方法,例如Get、Post等。其中参数值必须大写。
(3)设置输入输出及其他权限。
(4)设置HTTP请求头。在很多情况下,需要根据实际情况设置一些HTTP请求头。
(5)输入和输出数据。这一步是对HTTP资源的读写操作,也就是通过InputStream和OutputStream读取和写入数据。
(6)关闭输入输出流。
还是觉得用HttpClient比较方便,毕竟是专门用来简化HTTP客户端与服务端间通信编程的。
如果数据采用了HTTP协议,可以使用java.net.URLConnection获得这些数据。
try { URL url = new URL(urlStr); try { URLConnection conn = url.openConnection(); conn.connect(); InputStream is = conn.getInputStream(); return is; } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } catch (MalformedURLException e) { // TODO Auto-generated catch block e.printStackTrace(); }通过URLConnection对象获得网络资源的InputStream对象后,剩下的就是根据实际的需求按文本或是字节流来处理InputStream对象。从网络上获取这些数据保存至数组或List对象中,然后等于的步骤就和本地处理数据是一样的了。
在Manifest文件中一定要有:
<uses-permission android:name="android.permission.INTERNET" />
2.HttpURLConnection
http.net.HttpURLConnection类是另外一种访问HTTP资源的方式。HttpURLConnection类具有完全的访问能力,可以取代HttpGet和HttpPost类。
使用HttpURLConnection类访问HTTP资源的步骤:
(1)使用java.net.URL封装HTTP资源的url,并使用openConnection方法来获得HttpURLConnection对象。
String uploadUrl = "http://192.168.56.1:8080/upload/UploadServlet"; URL url = new URL(uploadUrl); HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
(2)设置请求方法,例如Get、Post等。其中参数值必须大写。
httpURLConnection.setRequestMethod("POST");
(3)设置输入输出及其他权限。
//下载HTTP资源,需要将setDoInput方法的参数设置为true httpURLConnection.setDoInput(true); //上传数据,需要将setDoOutput方法的参数设置为true httpURLConnection.setDoOutput(true);
(4)设置HTTP请求头。在很多情况下,需要根据实际情况设置一些HTTP请求头。
httpURLConnection.setRequestProperty("Charset", "UTF-8");
(5)输入和输出数据。这一步是对HTTP资源的读写操作,也就是通过InputStream和OutputStream读取和写入数据。
OutputStream os = httpURLConnection.getOutputStream(); InputStream is = httpURLConnection.getInputStream();
(6)关闭输入输出流。
is.close(); os.close();
还是觉得用HttpClient比较方便,毕竟是专门用来简化HTTP客户端与服务端间通信编程的。
相关文章推荐
- 常用的Linux网络配置命令
- 如何利用socket进行HTTP访问
- TCP/IP协议三次握手与四次握手流程解析
- 基于梯度下降的神经网络
- TCP和UDP的差别
- GRUB学习笔记(转自http://www.cnblogs.com/evilzy/archive/2008/03/30/1130173.html)
- qemu创建虚拟机,gdb调试及网络配置
- linux生产服务器有关网络状态的优化措施
- linux网络编程学习笔记之三 -----多进程并发服务端
- POJ 2455 Secret Milking Machine(搜索-二分,网络流-最大流)
- Python网络02 Python服务器进化
- Python网络01 原始Python服务器
- iOS Socket/Tcp编程 GCDAsyncSocket的实战(带回调)
- 无名网络流1
- 神经网络如何表达x1*x2?
- 计算机网络学习1
- 计算机网络体系结构
- PHP项目部署到阿里云,数据返回正常,http响应码500
- apache启动后只有一个进程,而且没有生成httpd.pid
- xcode提示App Transport Security has blocked a cleartext HTTP (http://) resource load的解决办法