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段

代码:

 package fry;

 import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL; import com.example.watchCode.R; import android.app.Activity;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText; public class Activity01 extends Activity{
private Button btn_checked;
private EditText et_webSite;
private EditText et_content;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity01); btn_checked=(Button) findViewById(R.id.btn_checked);
et_webSite=(EditText) findViewById(R.id.et_webSite);
et_content=(EditText) findViewById(R.id.et_content); } public void onClick(View view){
//获取编辑框输入的网址
String urlStr=et_webSite.getText().toString();
new AsyncTask<String,Void,String>(){ @Override
protected String doInBackground(String... arg0) {
//字符串缓冲区
StringBuffer buffer= new StringBuffer();
try {
String s=arg0[0]+":80";
//封装URL对象
URL url=new URL(s);
//获取http连接对象
HttpURLConnection conn =(HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
conn.setConnectTimeout(5000);
//获取状态码
int code=conn.getResponseCode();
Log.d("fry", "获取到状态码:"+code);
if(code==200){//请求成功
String contentType=conn.getHeaderField("Content-Type");
String encoding=contentType.split("=")[0];
Log.d("fry", encoding);
//获取响应消息的实体内容
InputStreamReader reader=new InputStreamReader(conn.getInputStream(),"UTF-8");
char[] charArr=new char[1024*8];
int len=0;
while((len=reader.read(charArr))!=-1){
//字符数组转字符串
String str=new String(charArr,0,len);
//在结尾追加字符串
buffer.append(str);
}
} } catch (Exception e) {
e.printStackTrace();
} return buffer.toString();
}
protected void onPostExecute(String result) {
//设置字符串到编辑框
et_content.setText(result); }; }.execute("http://"+urlStr);
} }

本来getResponseCode做了连接、获取状态码,返回状态码三件事。

现在conn.connect()把连接这件事做了。

5000ms没有成功连接就抛出异常

Html代码查看器的更多相关文章

  1. wpf 仿QQ图片查看器

    参考博客 WPF下的仿QQ图片查看器 wpf图片查看器,支持鼠标滚动缩放拖拽 实现效果 主要参考的WPF下的仿QQ图片查看器,原博主只给出了部分代码. 没有完成的部分 1.右下角缩略图是原图不是缩略图 ...

  2. 发布两款JQ小插件(图片查看器 + 分类选择器),开源

    图片查看器,github地址:https://github.com/VaJoy/imgViewer 效果如下: 这款当初大概写了2小时,有点匆忙地赶出来的,使用的接口很简单: $.bindViewer ...

  3. IIS事件查看器_WebServer事件查看器_帮助查看IIS-Web服务器事件执行日志

    IIS服务器是我们常用的Web站点部署工具,而我们有时可能遇到IIS服务器的应用程序池莫名其妙的关闭了,或者是其他未知原因等等,我们这是可以通过微软提供的WebServer(Web服务事件查看器),来 ...

  4. wpf图片查看器,支持鼠标滚动缩放拖拽

    最近项目需要,要用到一个图片查看器,类似于windows自带的图片查看器那样,鼠标滚动可以缩放,可以拖拽图片,于是就写了这个简单的图片查看器. 前台代码: <Window x:Class=&qu ...

  5. 解决Win10图片打开方式没有“Windows照片查看器”问题

    1.打开注册表编辑器(Win+R,Regedit),定位至(建议修改前备份注册表): HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Photo Viewe ...

  6. 微信聊天记录查看器(程序+源码) - iOS版

    本文版权归cxun所有,如有转载请注明出处与本文链接,谢谢!原文地址:http://www.cnblogs.com/cxun/p/4338643.html Updates [2016.10.14]感谢 ...

  7. 用JQ仿造礼德财富网的图片查看器

    现在就职于一家P2P平台,自然也会关注同行其它网站的前端技术,今天要仿造的是礼德内页的一个图片查看器效果.不过说白了,无论人人贷也好礼德财富也好,很多地方的前端都做的不尽如人意,比如忽略细节.缺乏交互 ...

  8. 基于jQuery的一个简单的图片查看器

    项目中自己diy了一个图片查看器.因为初始代码不是自己的,只是在上面改了一下也没有弄的很漂亮.等以后有时间了在重写一下样式和封装,作为备用的只是积累吧.如果有童鞋有用到,完全可以在此基础上改,比较容易 ...

  9. Moon转告给你一个比Log4net更好日志框架--TracerX Logger 及其对应的日志查看器

    一.介绍 TracerX logger是一个易于上手,且拥有众多高级特性的.NET日志框架. 它能够发送输出结果到多目的地(循环文件.事件日志等....).它也能生成文本和二进制文件.它拥有一个强大的 ...

随机推荐

  1. Vue混入:全局混入

    一 项目结构 二 main.js import Vue from "vue"; import App from "./App.vue"; Vue.config. ...

  2. 15.队列Queue的特点以及使用,优先级等

    #生产者与消费者模式,模式解释:比如MVC设计模式 ''' 1.队列 (1)特点:先进先出 (2)python2 VS python3 python2:from Queue import queue ...

  3. nodejs安装失败

    原文链接:https://www.cnblogs.com/huiziblog666/p/6274494.html 出现error 2502 和error2503是因为win8的权限问题所导致的,具体说 ...

  4. 线程休眠只会用 Thread.sleep?来,教你新姿势!

    线程休眠是 Java 开发经常会用到的一个手段,就是让当前线程睡一会儿,睡醒之后再继续运行. 咱大多数程序员,多线程虽然学得不好,但线程休眠,无人不知,无人不晓,也都会用,不就是用 Thread.sl ...

  5. redis setNx方法

    Redis有一系列的命令,特点是以NX结尾,NX是Not eXists的缩写,如SETNX命令就应该理解为:SET if Not eXists.这系列的命令非常有用,这里讲使用SETNX来实现分布式锁 ...

  6. Spring bean相关

    Spring中指定Bean的作用于的方式 以下四种为例: 单例(默认,可以不用特殊表明) @Scope(value = ConfigurableBeanFactory.SCOPE_SINGLETON) ...

  7. 没有找到mspdb80.dll,因此这个应用程序未能启动...问题解决

    这里主要针对使用link.exe进行SIG文件制作时,报错. 首先下载,mspdb80.dll:https://www.lanzous.com/i59dgfi 将dll文件移动到我的电脑(32位)C: ...

  8. k3 cloud中出现合计和汇总以后没有显示出来,合价要新增一行以后才出现值

    解决办法:找到对应字段,把及时触发值更新事件打上勾

  9. Node.js--fs 文件操作

    process 模块 在使用的时候无需通过 require() 函数来加载该模块,可以直接使用. fs 模块,在使用的时候,必须通过 require() 函数来加载该模块,方可使用. 原因:proce ...

  10. 基于ZYNQ XC7Z045 FFG 900的高性能计算模块

    一.板卡概述 本板卡基于Xilinx公司的FPGA XC7Z045 FFG 9000 芯片, 该平台为设计和验证应用程序提供了一个完整的开发平台.该平台使设计师能够更加简单进行高性能的原型设计,并且通 ...