Android通过HttpURLConnection类进行网络通信,获取网络图片!!!

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>






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值