您的位置:首页 > 理论基础 > 计算机网络

Android网络编程之URLConnection&HttpURLConnection

2016-01-13 09:55 218 查看
1.URLConnection

如果数据采用了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客户端与服务端间通信编程的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: