Html代碼查看器
阿新 • • 發佈:2017-09-07
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 protectedvoid 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代碼查看器