转自博客:
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方法。
- // 示例代码:通过Post方式发送请求
- URL url = new URL(“http://www.google.com”);
- HttpURLConnection conn = (HttpURLConnection) url.openConnection();
- // 设置输入/出流
- conn.setDoOutput(true);
- conn.setDoInput(true);
- // 设置请求方式为Post
- conn.setRequestMethod(“POST”);
- // Post请求不能使用缓存
- conn.setUseCaches(false);
- conn.setInstanceFollowRedirects(true);
- // 设置Content-type
- conn.setRequestProperty(“Content-Type”,“application/x-www-form-urlencoded”);
-
- // 在调用getOutputStream时会隐式调用conn.connect()
- DataOutputStream dos = new DataOutputStream(conn.getOutputStream());
- String content = “name=” + URLEncoder.encode(“Jake”,“gb2312”);
- dos.writeBytes(content);
- dos.flush();
- dos.close();
- // 连接完成之后可以关闭这个连接
- conn.disconnect();
- // 示例代码:读取网页上的内容
- InputStreamReader isr = new InputStreamReader(conn.getInputStream());
- BufferedReader br = new BufferedReader(isr);
- String line = null;
- while(((line = br.readLine()) != null)) { … }
- // 关闭连接
- isr.close();
- conn.disconnect();
- // 示例代码:获取网络上的一张图片
- …
- conn.setDoInput(true);
- conn.connect(); // 这条语句要不(待定)
- InputStream is = conn.getInputStream();
- // 将InputStream数据转换成Bitmap
- Bitmap bitmap = BitmapFactory.decodeStream(is);
- // 关闭数据流
- is.close();
参考博客: