Project——从网络上获取Html代码

来源:互联网 发布:vb编程线制作 编辑:程序博客网 时间:2024/06/05 04:16

1、

package cn.itcast.htmlcode;

import cn.itcast.service.HtmlService;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends Activity {
 private static final String TAG = "MainActivity";
    private EditText pathText;
    private TextView resultView;
   
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
       
        pathText = (EditText)this.findViewById(R.id.path);
        resultView = (TextView)this.findViewById(R.id.result);
        Button button = (Button)this.findViewById(R.id.button);
        button.setOnClickListener(new View.OnClickListener() {   
   @Override
   public void onClick(View v) {
    String path = pathText.getText().toString();
    try {
     String htmlcode = HtmlService.getHtml(path);
     resultView.setText(htmlcode);
    } catch (Exception e) {
     Log.e(TAG, e.toString());
     Toast.makeText(MainActivity.this, R.string.error, 1).show();
    }
   }
  });
    }
}

2、

package cn.itcast.service;

import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;

public class HtmlService {
 /**
  * 获取给定路径的html代码
  * @param path 网页路径
  * @return
  * @throws Exception
  */
 public static String getHtml(String path) throws Exception{
  URL url = new URL(path);
  //get //post
  HttpURLConnection conn = (HttpURLConnection)url.openConnection();
  conn.setRequestMethod("GET");
  conn.setConnectTimeout(5*1000);
  InputStream inStream = conn.getInputStream();
  
  ByteArrayOutputStream outStream = new ByteArrayOutputStream();
  byte[] buffer = new byte[1024];
  int len = 0;
  while( (len = inStream.read(buffer)) !=-1 ){
   outStream.write(buffer, 0, len);
  }
  byte[] data = outStream.toByteArray();//网页的二进制数据
  outStream.close();
  inStream.close();
  return new String(data, "gb2312");
 }
}