首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网络技术 > 网络协议 >

Android学习札记-24_网络通信之网页源码查看器

2013-03-22 
Android学习笔记---24_网络通信之网页源码查看器24_网络通信之网页源码查看器2013-03-1824_网络通信之网页

Android学习笔记---24_网络通信之网页源码查看器

24_网络通信之网页源码查看器

2013-03-1824_网络通信之网页源码查看器------------------------------------1.界面:一个输入text框,输入一个网页的地址,点击查看后,再下面的<TextView>控件  显示,如果内容较多,需要显示滚动条。----------------------------------------------2.Http watch可以用这个工具来查看http协议封装的信息。-------------------------------------------------------2013-03-19------------------------3.从internet获取数据的相关知识:  从Internet获取数据-----------------------------------利用HttpURLConnection对象,我们可以从网络中获取网页数据.URL url = new URL("http://www.sohu.com");HttpURLConnection conn = (HttpURLConnection) url.openConnection();conn.setConnectTimeout(5* 1000);//设置连接超时conn.setRequestMethod(“GET”);//以get方式发起请求if (conn.getResponseCode() != 200) throw new RuntimeException("请求url失败");InputStream is = conn.getInputStream();//得到网络返回的输入流String result = readData(is, "GBK");conn.disconnect();//第一个参数为输入流,第二个参数为字符集编码public static String readData(InputStream inSream, String charsetName) throws 
Exception{ByteArrayOutputStream outStream = new ByteArrayOutputStream();byte[] buffer = new byte[1024];int len = -1;while( (len = inSream.read(buffer)) != -1 ){outStream.write(buffer, 0, len);}byte[] data = outStream.toByteArray();outStream.close();inSream.close();return new String(data, charsetName);}-----------------------------------------------------4.利用HttpURLConnection对象,我们可以从网络中获取文件数据.URL url = new URL("http://photocdn.sohu.com/20100125/Img269812337.jpg");HttpURLConnection conn = (HttpURLConnection) url.openConnection();conn.setConnectTimeout(5* 1000);conn.setRequestMethod("GET");if (conn.getResponseCode() != 200) throw new RuntimeException("请求url失败");InputStream is = conn.getInputStream();readAsFile(is, "Img269812337.jpg"); 
public static void readAsFile(InputStream inSream, File file) throws Exception{FileOutputStream outStream = new FileOutputStream(file);byte[] buffer = new byte[1024];int len = -1;while( (len = inSream.read(buffer)) != -1 ){outStream.write(buffer, 0, len);}  outStream.close();inSream.close();}------------------------------------------------5.需要在清单文件中加入的权限:<!-- 访问internet权限 --><uses-permission android:name="android.permission.INTERNET"/>----------------------------------6.24_网络通信之网页源码查看器的代码:----------------------------------------  a.新建项目:HtmlViewer    /HtmlViewer/src/com/credream/htmlviewer/HtmlViewerActivity.java--------------package com.credream.htmlviewer;

import com.credream.service.PageService;import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.SimpleAdapter.ViewBinder;
import android.widget.Toast;

public class HtmlViewerActivity extends Activity {
  private EditText pathText;  private TextView codeView;/** Called when the activity is first created. */    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);   pathText=(EditText)this.findViewById(R.id.pagepath);   codeView=(TextView)this.findViewById(R.id.codeview);  Button button=(Button) this.findViewById(R.id.button);  
button.setOnClickListener(new ButtonClickListener());       }
private final class ButtonClickListener implements View.OnClickListener{
@Override
public void onClick(View v){
String path= pathText.getText().toString();try{String  html=PageService.getHtml(path);codeView.setText(html);} catch (Exception e){e.printStackTrace();Toast.makeText(getApplicationContext(), R.string.error,1).show();
}
 
}
}}-------------------------------------------  b./HtmlViewer/src/com/credream/service/PageService.java--------------------------package com.credream.service;
import java.io.InputStream;import java.net.HttpURLConnection;import java.net.URL;
import com.credream.util.StreamTool;
public class PageService{/** * 获取网页的HTml代码 */
public static String getHtml(String path) throws Exception{URL uri = new URL(path);HttpURLConnection conn = (HttpURLConnection) uri.openConnection
();conn.setConnectTimeout(5000);conn.setRequestMethod("GET");if (conn.getResponseCode() == 200){InputStream inStream = conn.getInputStream();byte[] data = StreamTool.read(inStream);String html = new String(data, "UTF-8");return html;}return null;}
}---------------------------------------c./HtmlViewer/src/com/credream/util/StreamTool.java-----------------------------------------------------package com.credream.util;
import java.io.ByteArrayOutputStream;import java.io.InputStream;
/** * 读取流中的数据 *  * @author xiaofeng *  */public class StreamTool{public static byte[] read(InputStream inStream) throws Exception{ByteArrayOutputStream outStream = new ByteArrayOutputStream();byte[] buffer = new byte[1024];int len = 0;while ((len = inStream.read(buffer)) != -1){outStream.write(buffer, 0, len);// 往内存写数据}inStream.close();return outStream.toByteArray();}
}----------------------------------d./HtmlViewer/res/layout/main.xml---------------------------------------<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    android:orientation="vertical" >
    <TextView        android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:text="@string/pagepath" /><EditText      android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:text="http://192.168.1.110:6118/web/index.html"   android:id="@+id/pagepath"    />
<Button android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="@string/button"android:id="@+id/button"/><!--        <TextView        android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:id="@+id/codeview" />--><ScrollView      android:layout_width="fill_parent"        android:layout_height="wrap_content"    >      <TextView        android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:id="@+id/codeview" /></ScrollView></LinearLayout>------------------------------------------------------e./HtmlViewer/res/values/strings.xml-------------------------------------<?xml version="1.0" encoding="utf-8"?><resources>
    <string name="hello">Hello World, HtmlViewerActivity!</string>    <string name="app_name">Html源码查看</string>       <string name="pagepath">网页路径</string>       <string name="button">查看</string>             <string name="error">读取信息错误</string>
</resources>---------------------------------------------------f./HtmlViewer/AndroidManifest.xml---------------------------------------<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android"    package="com.credream.htmlviewer"    android:versionCode="1"    android:versionName="1.0" >
    <uses-sdk android:minSdkVersion="8" />
    <application        android:icon="@drawable/ic_launcher"        android:label="@string/app_name" >        <activity            android:label="@string/app_name"            android:name=".HtmlViewerActivity" >            <intent-filter >                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />            </intent-filter>        </activity>    </application>    <!-- 访问网络权限 -->    <uses-permission android:name="android.permission.INTERNET" /></manifest>----------------------------------7.新建web项目,并且在webroot下,新建文件index.html---------------------------------------------------/web/WebContent/index.html--------------------------<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Insert title here</title></head><body>创梦网络<br/>创梦网络<br/>创梦网络<br/>创梦网络<br/>创梦网络<br/>创梦网络<br/>创梦网络<br/>创梦网络<br/>创梦网络<br/>创梦网络<br/>创梦网络<br/>创梦网络<br/>创梦网络<br/>创梦网络<br/>创梦网络<br/>创梦网络<br/>创梦网络<br/>创梦网络<br/>创梦网络<br/>创梦网络<br/>创梦网络<br/>创梦网络<br/>创梦网络<br/>创梦网络<br/>创梦网络<br/>创梦网络<br/>创梦网络<br/>创梦网络<br/>//Http watch</body></html>----------------------------------

热点排行