1. 程式人生 > >Html代碼查看器

Html代碼查看器

9.png tro clas Coding open layout spl png example

Html代碼查看器

效果:

技術分享

技術分享

分析:

1、連接網絡需要權限

  <uses-permission android:name="android.permission.INTERNET" />

2、要把默認協議和默認端口http和80寫上

3、把訪問網絡的代碼放在AsyncTask裏面

4、得到內容類型兩種方法

  String contentType=conn.getHeaderField("Content-Type");

  conn.getContentType

5、分割函數

  String encoding=contentType.split("=")[0];

  以等號為分割,取第0段

代碼:

 1 package fry;
 2 
 3 import java.io.InputStreamReader;
 4 import java.net.HttpURLConnection;
 5 import java.net.MalformedURLException;
 6 import java.net.URL;
 7 
 8 import com.example.watchCode.R;
 9 
10 import android.app.Activity;
11 import android.os.AsyncTask;
12 import android.os.Bundle;
13 import android.util.Log; 14 import android.view.View; 15 import android.widget.Button; 16 import android.widget.EditText; 17 18 public class Activity01 extends Activity{ 19 private Button btn_checked; 20 private EditText et_webSite; 21 private EditText et_content; 22 @Override 23 protected
void onCreate(Bundle savedInstanceState) { 24 // TODO Auto-generated method stub 25 super.onCreate(savedInstanceState); 26 setContentView(R.layout.activity01); 27 28 btn_checked=(Button) findViewById(R.id.btn_checked); 29 et_webSite=(EditText) findViewById(R.id.et_webSite); 30 et_content=(EditText) findViewById(R.id.et_content); 31 32 } 33 34 35 public void onClick(View view){ 36 //獲取編輯框輸入的網址 37 String urlStr=et_webSite.getText().toString(); 38 new AsyncTask<String,Void,String>(){ 39 40 @Override 41 protected String doInBackground(String... arg0) { 42 //字符串緩沖區 43 StringBuffer buffer= new StringBuffer(); 44 try { 45 String s=arg0[0]+":80"; 46 //封裝URL對象 47 URL url=new URL(s); 48 //獲取http連接對象 49 HttpURLConnection conn =(HttpURLConnection) url.openConnection(); 50 conn.setRequestMethod("GET"); 51 conn.setConnectTimeout(5000); 52 //獲取狀態碼 53 int code=conn.getResponseCode(); 54 Log.d("fry", "獲取到狀態碼:"+code); 55 if(code==200){//請求成功 56 String contentType=conn.getHeaderField("Content-Type"); 57 String encoding=contentType.split("=")[0]; 58 Log.d("fry", encoding); 59 //獲取響應消息的實體內容 60 InputStreamReader reader=new InputStreamReader(conn.getInputStream(),"UTF-8"); 61 char[] charArr=new char[1024*8]; 62 int len=0; 63 while((len=reader.read(charArr))!=-1){ 64 //字符數組轉字符串 65 String str=new String(charArr,0,len); 66 //在結尾追加字符串 67 buffer.append(str); 68 } 69 } 70 71 } catch (Exception e) { 72 e.printStackTrace(); 73 } 74 75 return buffer.toString(); 76 } 77 protected void onPostExecute(String result) { 78 //設置字符串到編輯框 79 et_content.setText(result); 80 81 }; 82 83 }.execute("http://"+urlStr); 84 } 85 86 }

技術分享

本來getResponseCode做了連接、獲取狀態碼,返回狀態碼三件事。

現在conn.connect()把連接這件事做了。

技術分享

5000ms沒有成功連接就拋出異常

Html代碼查看器