Android Http访问网络 学习(慕课网学习)
来源:互联网 发布:science杂志知乎 编辑:程序博客网 时间:2024/06/05 02:01
一:通过Http 下载百度源码加载到 WebView显示
1:需要访问网络必须先要获取网络权限:
<span style="font-family: Arial, Helvetica, sans-serif;"> <uses-permission android:name="android.permission.INTERNET" ></span>
</uses-permission>2:在xml文件 定义Webview。
3:因为网络数据加载延迟问题,所以必须要用线程类来显示网页:
package testHttp;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.net.HttpURLConnection;import java.net.MalformedURLException;import java.net.URL;import org.apache.http.HttpConnection;import android.R.string;import android.os.Handler;import android.webkit.WebView;public class HttpThread extends Thread{private String url;private WebView webView;private Handler handler;HttpThread(String url,WebView webView,Handler handler){this.url=url;this.webView=webView;this.handler=handler;}@Overridepublic void run() {try {URL httpUrl=new URL(url); try {HttpURLConnection httpConnection=(HttpURLConnection) httpUrl.openConnection();//建立http连接httpConnection.setReadTimeout(5000);//设置超时时间httpConnection.setRequestMethod("GET");//设置请求为GET方法final StringBuffer bufferString=new StringBuffer();//用Stringbuffer来存储读到的代码BufferedReader reader=new BufferedReader(new InputStreamReader(httpConnection.getInputStream()));String str;while((str=reader.readLine())!=null){bufferString.append(str);}handler.post(new Runnable() {@Overridepublic void run() {
webView.loadData(bufferString.toString(),
"text/html;charset=utf-8", null);//将webView显示到网页上,还是要想 Web一样设置其编码}});} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}} catch (MalformedURLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}
4:在MainActivity中建立线程,并传参数到Thread:
package testHttp;import com.example.androidtest.R;import android.app.Activity;import android.os.Bundle;import android.os.Handler;import android.webkit.WebView;public class TestHttpActivity extends Activity{private WebView webView;private String urlString="http://www.baidu.com";Handler handler=new Handler();@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);setContentView(R.layout.http_main_activity);webView=(WebView) findViewById(R.id.httpWebView);new HttpThread(urlString, webView, handler).start();}}
二:使用http协议在app中加载图片:
1:手写也是网络权限;
2:在xml文件 定义ImageView。
3:使用http获取网络图片,但是不同的是现在要通过二进制流来获取图片了。
先用二进制流获取到图片到本地之后,再用本地地址打开图片到ImageView:
package testHttp;import java.io.BufferedReader;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.net.HttpURLConnection;import java.net.MalformedURLException;import java.net.URL;import org.apache.http.HttpConnection;import android.R.string;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.os.Environment;import android.os.Handler;import android.webkit.WebView;import android.widget.ImageView;public class HttpThread extends Thread{private String url;private ImageView imageView;private Handler handler;HttpThread(String url,ImageView imageView,Handler handler){this.url=url;this.imageView=imageView;this.handler=handler;}@Overridepublic void run() {try {URL httpUrl=new URL(url);try {HttpURLConnection httpConnection=(HttpURLConnection) httpUrl.openConnection();httpConnection.setReadTimeout(5000);httpConnection.setRequestMethod("GET");httpConnection.setDoInput(true); //允许写InputStream inputStream=httpConnection.getInputStream();FileOutputStream fileOutputStream=null;File downFile=null;String fileNameString=String.valueOf(System.currentTimeMillis());if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){File parentFile=Environment.getExternalStorageDirectory();//获取本地路径downFile=new File(parentFile, fileNameString);fileOutputStream = new FileOutputStream(downFile);}byte[] bt=new byte[2*1024];int len;if(fileOutputStream!=null){while((len=inputStream.read(bt))!=-1){fileOutputStream.write(bt, 0, len);}}final Bitmap bitmap=BitmapFactory.decodeFile(downFile.getAbsolutePath());handler.post(new Runnable() {@Overridepublic void run() {// TODO Auto-generated method stubimageView.setImageBitmap(bitmap);}});} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}} catch (MalformedURLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}
0 0
- Android Http访问网络 学习(慕课网学习)
- Android学习使用HTTP协议访问网络
- android学习二十(使用HTTP协议访问网络)
- 【Android 学习笔记】 之 使用HTTP协议访问网络
- android学习之使用HTTP协议访问网络
- Android(OPhone) 学习笔记 - 网络访问
- android中网络访问学习
- Android Http访问网络
- Android学习之网络请求(访问网路数据)一
- android学习——网络访问HttpURLConnection
- Android网络学习笔记--------http协议简介
- android开发之网络学习-http/https
- Python http访问学习
- Android Http协议访问网络
- Android - HTTP 协议访问网络
- Android:HTTP协议访问网络
- Android使用Http访问网络
- android 访问网络四 (基于android-async-http-master)
- Looper,Handler,Message
- 欢迎使用CSDN-markdown编辑器
- poj 2495 Incomplete chess boards 覆盖问题巧解
- c/c++中空指针,空指针常量,NULL
- Windows 安装ACE,在Visual Studio 2013测试通过
- Android Http访问网络 学习(慕课网学习)
- 支付宝转账支付方式
- 设置python的默认编码为utf8
- php的base64编码后放到URL里,有时会出问题
- 使用模板加快编码效率(一)——txt文本
- ubuntu+kali常见问题总结
- CSDN-markdown编辑器
- 设计模式初体验---简单工厂模式SimpleFactory
- Google官方统计Android版本分布