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:
<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>