Android通过HttpURLConnection类进行网络通信,获取网络图片!!!
2012-10-23 16:01
513 查看
httpget.jsp:
<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
<HTML>
<HEAD>
<TITLE>Http Test</TITLE>
</HEAD>
<BODY>
<%
String type = request.getParameter("par");
String result = new String(type.getBytes("iso-8859-1"), "gb2312");
out.println("<h1>parameters:"+result+"</h1>");
%>
</BODY>
</HTML>
http1.jsp:
1、 HttpURLConnection 类通过Get方式获取网络资源:
二, 以get方式传递参数:
三, 以post方式获取数据:
四, 获取图片bitmap:
一个不断更新网页时间的例子:
private Runnable mRunnable = new Runnable() {
@Override
public void run() {
while (true) {
try {
Thread.sleep(5*1000);
mDateRefreshHandler.sendMessage(mDateRefreshHandler.obtainMessage());
} catch (Exception e) {
Log.e(TAG, e.toString());
}
}
}
};
Handler mDateRefreshHandler = new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
refreshDate();
}
};
private void refreshDate(){
mBackBtn.setVisibility(View.GONE);
String httpUrl = "http://192.168.1.76/caoshiyu/date.jsp";
String resultData = "";
URL url = null;
try {
url = new URL(httpUrl);
} catch (MalformedURLException e) {
return;
}
if (url != null) {
try {
HttpURLConnection urlConn = (HttpURLConnection)url.openConnection();
InputStreamReader in = new InputStreamReader(urlConn.getInputStream());
BufferedReader buffer = new BufferedReader(in);
String inputLine = null;
while ((inputLine = buffer.readLine()) != null) {
resultData += inputLine + "\n";
}
in.close();
urlConn.disconnect();
if(resultData != null){
mContent.setText(resultData);
}else{
mContent.setText("it is null!");
}
} catch (Exception e) {
Log.e(TAG, e.toString());
}
}else{
Log.e(TAG, "Url is NUll");
}
}
<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
<HTML>
<HEAD>
<TITLE>Http Test</TITLE>
</HEAD>
<BODY>
<%
String type = request.getParameter("par");
String result = new String(type.getBytes("iso-8859-1"), "gb2312");
out.println("<h1>parameters:"+result+"</h1>");
%>
</BODY>
</HTML>
http1.jsp:
<HTML> <HEAD> <TITLE>Http Test</TITLE> </HEAD> <BODY> <% out.println("<h1>HTTP TEST<br>http test</h1>"); %> </BODY> </HTML>
1、 HttpURLConnection 类通过Get方式获取网络资源:
private void httpUsualGetData(){ new Thread(new Runnable() { @Override public void run() { Log.i(TAG, "thread--->"+Thread.currentThread().getId()); Log.i(TAG, "thread--->"+Thread.currentThread().getName()); String httpUrl = "http://192.168.1.76/caoshiyu/http1.jsp"; String resultData = ""; URL url = null; try { url = new URL(httpUrl); } catch (MalformedURLException e) { return; } if (url != null) { try { HttpURLConnection urlConn = (HttpURLConnection)url.openConnection(); InputStreamReader in = new InputStreamReader(urlConn.getInputStream()); BufferedReader buffer = new BufferedReader(in); String inputLine = null; while ((inputLine = buffer.readLine()) != null) { resultData += inputLine + "\n"; } in.close(); urlConn.disconnect(); // if(resultData != null){ // mContent.setText(resultData); // }else{ // mContent.setText("NULL"); // } Bundle bd = new Bundle(); bd.putString("result", resultData); Message msg = new Message(); msg.setData(bd); mHandler.sendMessage(msg); } catch (Exception e) { Log.e(TAG, "read error!!!"); e.printStackTrace(); } }else{ Log.e(TAG, "Url is NUll"); } } }).start(); } class MyHandler extends Handler{ @Override public void handleMessage(Message msg) { Bundle bd = msg.getData(); String resultData = bd.getString("result"); if(resultData != null){ mContent.setText(resultData); }else{ mContent.setText("NULL"); } } }
二, 以get方式传递参数:
private void httpGetGetData(){ new Thread(new Runnable() { @Override public void run() { String httpUrl = "http://192.168.1.76/caoshiyu/httpget.jsp?par=abcdefg"; String resultData = ""; URL url = null; try { url = new URL(httpUrl); } catch (MalformedURLException e) { return; } if (url != null) { try { HttpURLConnection urlConn = (HttpURLConnection)url.openConnection(); InputStreamReader in = new InputStreamReader(urlConn.getInputStream()); BufferedReader buffer = new BufferedReader(in); String inputLine = null; while ((inputLine = buffer.readLine()) != null) { resultData += inputLine + "\n"; } in.close(); urlConn.disconnect(); final String resultData1 = resultData; // mContent.post(new Runnable() { // @Override // public void run() { // if(resultData1 != null){ // mContent.setText(resultData1); // }else{ // mContent.setText("NULL"); // } // // } // }); mHandler.post(new Runnable() { @Override public void run() { Log.i(TAG, "thread2--->"+Thread.currentThread().getId()); Log.i(TAG, "thread2--->"+Thread.currentThread().getName()); if (resultData1 != null) { mContent.setText(resultData1); } else { mContent.setText("NULL"); } } }); } catch (Exception e) { Log.e(TAG, "read error!!!"); } }else{ Log.e(TAG, "Url is NUll"); } } }).start(); }
三, 以post方式获取数据:
private void httpPostGetData(){ new Thread(new Runnable() { @Override public void run() { String httpUrl = "http://192.168.1.76/caoshiyu/httpget.jsp"; String resultData = ""; URL url = null; try { url = new URL(httpUrl); } catch (MalformedURLException e) { return; } if (url != null) { try { HttpURLConnection urlConn = (HttpURLConnection)url.openConnection(); urlConn.setDoInput(true); urlConn.setDoOutput(true); urlConn.setRequestMethod("POST"); urlConn.setUseCaches(false); urlConn.setInstanceFollowRedirects(true); urlConn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); DataOutputStream out = new DataOutputStream(urlConn.getOutputStream()); String content = "par=" + URLEncoder.encode("ABCDEFG", "gb2312"); out.writeBytes(content); out.flush(); out.close(); InputStreamReader in = new InputStreamReader(urlConn.getInputStream()); BufferedReader buffer = new BufferedReader(in); String inputLine = null; while ((inputLine = buffer.readLine()) != null) { resultData += inputLine + "\n"; } in.close(); buffer.close(); urlConn.disconnect(); final String resultData1 = resultData; // mContent.post(new Runnable() { // @Override // public void run() { // if(resultData1 != null){ // mContent.setText(resultData1); // }else{ // mContent.setText("NULL"); // } // // } // }); mHandler.post(new Runnable() { @Override public void run() { Log.i(TAG, "thread2--->"+Thread.currentThread().getId()); Log.i(TAG, "thread2--->"+Thread.currentThread().getName()); if (resultData1 != null) { mContent.setText(resultData1); } else { mContent.setText("NULL"); } } }); } catch (Exception e) { Log.e(TAG, "read error!!!"); } }else{ Log.e(TAG, "Url is NUll"); } } }).start(); }
四, 获取图片bitmap:
private void showBitmap(){ new Thread(new Runnable() { @Override public void run() { String httpUrl = "http://192.168.1.76/caoshiyu/contact_vt_icon.png"; String resultData = ""; URL url = null; try { url = new URL(httpUrl); } catch (MalformedURLException e) { return; } if (url != null) { try { HttpURLConnection urlConn = (HttpURLConnection)url.openConnection(); urlConn.setDoInput(true); // urlConn.setConnectTimeout(5*1000); urlConn.connect(); InputStream is = urlConn.getInputStream(); // final ByteArrayOutputStream outStream = new ByteArrayOutputStream(); // byte[] buffer = new byte[1024]; // int len = 0; // while ((len = is.read(buffer)) != -1) { // outStream.write(buffer, 0, len); // } final Bitmap bp = BitmapFactory.decodeStream(is); is.close(); urlConn.disconnect(); // byte[] data = outStream.toByteArray(); // final Bitmap bp = BitmapFactory.decodeByteArray(data, 0, data.length); // return outStream.toByteArray(); mHandler.post(new Runnable() { @Override public void run() { mImg.setImageBitmap(bp); } }); // if(bp != null){ // } } catch (Exception e) { Log.e(TAG, "read error!!!"); } }else{ Log.e(TAG, "Url is NUll"); } } }).start();
一个不断更新网页时间的例子:
private Runnable mRunnable = new Runnable() {
@Override
public void run() {
while (true) {
try {
Thread.sleep(5*1000);
mDateRefreshHandler.sendMessage(mDateRefreshHandler.obtainMessage());
} catch (Exception e) {
Log.e(TAG, e.toString());
}
}
}
};
Handler mDateRefreshHandler = new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
refreshDate();
}
};
private void refreshDate(){
mBackBtn.setVisibility(View.GONE);
String httpUrl = "http://192.168.1.76/caoshiyu/date.jsp";
String resultData = "";
URL url = null;
try {
url = new URL(httpUrl);
} catch (MalformedURLException e) {
return;
}
if (url != null) {
try {
HttpURLConnection urlConn = (HttpURLConnection)url.openConnection();
InputStreamReader in = new InputStreamReader(urlConn.getInputStream());
BufferedReader buffer = new BufferedReader(in);
String inputLine = null;
while ((inputLine = buffer.readLine()) != null) {
resultData += inputLine + "\n";
}
in.close();
urlConn.disconnect();
if(resultData != null){
mContent.setText(resultData);
}else{
mContent.setText("it is null!");
}
} catch (Exception e) {
Log.e(TAG, e.toString());
}
}else{
Log.e(TAG, "Url is NUll");
}
}
new Thread(mRunnable).start();
date.jsp
<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%> <HTML> <HEAD> <TITLE>Date Test</TITLE> </HEAD> <BODY> <% java.text.SimpleDateFormat formatter=new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); java.util.Date currentTime = new java.util.Date(); String str_date1 = formatter.format(currentTime); String str_date2 = currentTime.toString(); out.println("<h1>Date:"+str_date2+"</h1>"); %> </BODY> </HTML>
相关文章推荐
- Android通过HttpURLConnection类进行网络通信,获取网络图片
- Android HttpURLConnection(Get,Post方式)进行网络通信 获取数据和网络图片
- Android网络通信:通过volley和gson获取聚合数据
- android网络通信之获取网络图片
- Android仿人人客户端(v5.7.1)——对从服务器端(网络)获取的图片进行本地双缓存处理(流程图或活动图)
- android开发-通过HttpURLConnection获取网络内容,Bitmap把二进制格式的图片转为位图
- Android仿人人客户端(v5.7.1)——对从服务器端(网络)获取的图片进行本地双缓存处理(编码实现)
- Android 通过url获取网络图片并显示在ImageView中
- Android通过网络URL获取图片并显示
- Android 网络通信框架Volley简介以及获取JSON对象和图片加载例子
- 强制Android应用通过网络代理进行通信
- Android数据存储:获取网络图片把图片保存到SD卡中并从SDk卡中读取(通过Bitmap方法)
- Android仿人人客户端(v5.7.1)——对从服务器端(网络)获取的图片进行本地双缓存处理(编码实现)
- 图片、缓存-Android仿人人客户端(v5.7.1)——对从服务器端(网络)获取的图片进行本地双缓存处理(编码实现)-by小雨
- android网络通信之通过网络获得图片
- Android仿人人客户端(v5.7.1)——对从服务器端(网络)获取的图片进行本地双缓存处理(编码实现)
- android网络通信之获取网络图片
- java 通过网络地址获取图片宽高
- Android-Volley网络通信框架(二次封装数据请求和图片请求(包含处理请求队列和图片缓存))
- android初学------volley获取网络上的json,图片