android的Http协议学习与应用——连接一个网页
来源:互联网 发布:大张伟 天天向上 知乎 编辑:程序博客网 时间:2024/06/06 05:13
MainActivity主类
package com.example.http_01;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.webkit.WebView;
public class MainActivity extends Activity {
private WebView webView;
private Handler handler = new Handler();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
webView = (WebView) findViewById(R.id.webView1);
//调用start方法开启线程
new HttpThread("https://www.baidu.com/", webView, handler).start();
}
}
HttpThread类
package com.example.http_01;
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 javax.net.ssl.HttpsURLConnection;
import android.os.Handler;
import android.webkit.WebView;
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对象,统一资源定位符对象
URL httpUrl = new URL(url);
try {
HttpsURLConnection conn = (HttpsURLConnection) httpUrl.openConnection();
//设置请求超时的时间
conn.setReadTimeout(5000);
//设置请求方式
conn.setRequestMethod("GET");
//创建stringbuffer对象来缓存数据
final StringBuffer sb = new StringBuffer();
//conn.getInputStream()代表网页返回的字符流,InputStreamReader将字符流转化成字节流
BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String str;
while ((str = reader.readLine())!=null) {
//将读取的每一行字节流存入StringBuffer中
sb.append(str);
}
handler.post(new Runnable(){
@Override
public void run() {
//加载数据
webView.loadData(sb.toString(), "text/html;charset=utf-8", null);
}
});
} catch (IOException e) {
e.printStackTrace();
}
} catch (MalformedURLException e) {
e.printStackTrace();
}
}
}
显示页面配置文件
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.http_01.MainActivity"
tools:ignore="MergeRootFrame" >
<WebView
android:id="@+id/webView1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true" />
</RelativeLayout>
- android的Http协议学习与应用——连接一个网页
- HTTP协议(1)—HTTP的连接
- android学习笔记——http协议
- Android基础入门教程——7.1.1 Android网络编程要学的东西与Http协议学习
- HTTP协议学习(三)——连接管理
- HTTP协议与Servlet的应用
- HTTP协议的应用与总结
- HTTP协议与cookie技术:——一个周日下午
- http协议及网页header头应用
- Android下的应用编程——用HTTP协议实现文件上传功能
- Android下的应用编程——用HTTP协议实现文件上传功能
- Android下的应用编程——用HTTP协议实现文件上传功能
- HTTP本身是一个无状态的连接协议
- android利用Http协议获取网页文本内容的方法
- android学习连接网页
- android HTTP协议编程的学习
- 协议学习——http2 与http/1.x
- 计算机网络--http协议的长链接与短连接
- Trapping Rain Water
- 【Java多线程】之一:Thread Simple Example
- 【003.Matlab基础 数组】
- 第80讲:List的泛型分析以及::类和Nil对象学习笔记
- 左移 & 右移
- android的Http协议学习与应用——连接一个网页
- 自己封装的XMLHttpRequest2 ajax
- 14、 C语言和设计模式(状态模式)
- Hibernate结合C3P0
- 自定义Spinner
- 【实例】【html5】在canvas获取鼠标的坐标
- 使用LFM(Latent factor model)隐语义模型进行Top-N推荐
- Fork与Join相关
- php多城市切换