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

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:

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



                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐