HttpUrlConnection
一.访问网页
1.在activity_main.xml中定义布局WebView(要添加权限)
<WebView android:id="@+id/webView" android:layout_width="match_parent" android:layout_height="match_parent" />
2.在MainActivity中开启线程HttpThread访问网络
new HttpThread("http://www.baidu.com",webView,handler).start();
HttpThread.java
public class HttpThread extends Thread{ private String url; private WebView webView; private Handler handler; public HttpThread(String url, WebView webView, Handler handler) { this.url = url; this.webView = webView; this.handler = handler; } @Override public void run() { try { URL httpUrl = new URL(url); HttpURLConnection conn = (HttpURLConnection)httpUrl.openConnection(); conn.setReadTimeout(5000); //设置访问超时 conn.setRequestMethod("GET"); //访问方式 // 1.访问http网址 final StringBuffer sb = new StringBuffer(); BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream())); String str; while ((str = br.readLine()) != null){ sb.append(str); } handler.post(new Runnable() { @Override public void run() { webView.loadDataWithBaseURL(url, sb.toString(), "text/html", "uft-8", null); } }); } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }
二.访问图片(要添加权限)
1.在activity_main.xml布局
<ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/imageView"/>
2.在MainActivity开启线程HttpThread下载并访问图片
public class HttpThread extends Thread{ private String url; private ImageView imageView; private Handler handler; public HttpThread(String url, ImageView imageView, Handler handler) { this.url = url; this.imageView = imageView; this.handler = handler; } @Override public void run() { try { URL httpUrl = new URL(url); HttpURLConnection conn = (HttpURLConnection)httpUrl.openConnection(); conn.setReadTimeout(5000); //设置访问超时 conn.setRequestMethod("GET"); //访问方式 // 2.访问网络图片,下载可省略 conn.setDoInput(true); InputStream in = conn.getInputStream(); FileOutputStream fos = null; String filename = String.valueOf(System.currentTimeMillis()); File downloadFile = null; if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){ File parent = Environment.getExternalStorageDirectory(); downloadFile = new File(parent,filename); fos = new FileOutputStream(downloadFile); } byte[] datas = new byte[2*1024]; int len; if(fos != null) { while ((len = in.read(datas)) != -1) { fos.write(datas, 0, len); } } final Bitmap bitmap = BitmapFactory.decodeStream(in); handler.post(new Runnable() { @Override public void run() { imageView.setImageBitmap(bitmap); } }); } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }