HttpURLConnection 网络编程 -- 获取页面
来源:互联网 发布:vscode 编译php 编辑:程序博客网 时间:2024/05/22 00:08
HttpURLConnection 网络编程 -- 获取页面
1. 搭建布局============================<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" android:orientation="vertical" > <EditText android:id="@+id/edit" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="http://" /> <Button android:id="@+id/btn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="获取页面" /> <ScrollView android:layout_width="fill_parent" android:layout_height="wrap_content" > <TextView android:id="@+id/text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/hello_world" /> </ScrollView></LinearLayout>2清单文件================================<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="spl.example.httpurldemo" android:versionCode="1" android:versionName="1.0" > <uses-permission android:name="android.permission.INTERNET" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name=".MainActivity4" android:label="@string/app_name" android:windowSoftInputMode="stateHidden|stateAlwaysHidden" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application></manifest>[测试]...3.点击事件=====================================public class MainActivity4 extends Activity { EditText edit;// 地址栏 Button btn; // 按钮 TextView text;// 文本框 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main_activity4); initView(); initListener(); } private void initView(){ edit = (EditText) findViewById(R.id.edit); text = (TextView) findViewById(R.id.text); btn = (Button) findViewById(R.id.btn); } private void initListener(){ btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String urlStr= edit.getText().toString().trim(); Toast.makeText(MainActivity4.this, "url=" + urlStr,Toast.LENGTH_LONG).show(); } }); }}[测试]...4.创建线程===================================== //1 创建ProgressDialog ProgressDialog progressDialog;// 进度条的对话框 public void showProgress(){ progressDialog = new ProgressDialog(this); progressDialog.setTitle("提示"); progressDialog.setMessage("正在加载网页内容..."); progressDialog.setCancelable(true);// 允许Cancel progressDialog.show();// 显示 } //2 处理结果 String result;// 页面内容 Handler handler = new Handler(){ public void handleMessage(Message msg) { if (msg.what == 1) { text.setText(result); Toast.makeText(MainActivity4.this, "连接成功", Toast.LENGTH_LONG).show(); progressDialog.dismiss();// 消失 }else if (msg.what == 2) { Toast.makeText(MainActivity4.this, "连接失败", Toast.LENGTH_LONG).show(); progressDialog.dismiss();// 消失 } }; }; //3 启动线程 public void connectNet(final String urlStr) { new Thread() { public void run() { result = "测试内容:"+urlStr; handler.sendEmptyMessage(1); }; }.start(); }5.HttpURLConnection 编程=显示页面源码到界面================ //3 启动线程 public void connectNet(final String urlStr) { new Thread() { public void run() { HttpURLConnection conn = null; try { // 1)创建URL对象 URL url = new URL(urlStr); // 2)获取连接对象 conn = (HttpURLConnection) url.openConnection(); // 3) 设置连接属性(可以省略) conn.setConnectTimeout(5000); // 4) 获取状态码 int code = conn.getResponseCode(); // 5) 判断状态码 if (code == 200){ // 6) 获取流 InputStream is = conn.getInputStream(); // 7) 流读取字符 result = HttpUtil.readData(is); // 8) 通知UI主线程 handler.sendEmptyMessage(1); // 9) 关闭流 is.close(); }else{ handler.sendEmptyMessage(2);// 失败 } } catch (Exception e) { Log.i("spl", "异常:" + e.getMessage()); e.printStackTrace(); }finally{ // 10) 断开连接 conn.disconnect(); } };// run }.start(); }/**读取输入流 1*/public static String readData(InputStream inStream) throws IOException{ByteArrayOutputStream outStream = new ByteArrayOutputStream();byte[] buffer = new byte[1024];int len = -1;while((len = inStream.read(buffer)) != -1){outStream.write(buffer, 0, len);}byte[] data = outStream.toByteArray();inStream.close();outStream.close();return new String(data,"UTF-8");} /**读取输入流 2*/ public static String readLines(InputStream is) throws IOException{ String html =""; InputStreamReader isr = new InputStreamReader(is); BufferedReader bufferReader = new BufferedReader(isr); String inputLine = ""; while ((inputLine = bufferReader.readLine()) != null) { html += inputLine + "\n"; } return html; }============================== 设置键盘监听回车(按"回车"开始下载页面)============================== private void startConnecting(){ String urlStr = edit.getText().toString().trim(); Toast.makeText(MainActivity4.this, "url=" + urlStr, Toast.LENGTH_LONG).show(); connectNet(urlStr);// 连网 showProgress();// 进度 } // 设置键盘监听回车 edit.setOnKeyListener(new View.OnKeyListener() { @Override public boolean onKey(View v, int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_ENTER && event.getAction() == KeyEvent.ACTION_DOWN) {// 修改回车键功能 // 先隐藏键盘 ((InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE)) .hideSoftInputFromWindow( getCurrentFocus().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS); // 开始连网 startConnecting(); return true; } return false; } });
0 0
- HttpURLConnection 网络编程 -- 获取页面
- HttpURLConnection获取网络图片
- HttpURLConnection网络获取
- android HttpURLConnection编程详解,获取网络图片,html代码查看
- android HttpURLConnection编程详解,获取网络图片,html代码查
- Android网络编程---HttpURLConnection
- 网络编程之HttpURLConnection
- HttpURLConnection----Android网络编程
- HttpURLConnection网络获取天气预报信息
- HttpUrlConnection获取网络json串
- Android网络编程之HttpURLConnection
- Android网络编程之HttpURLConnection
- Java网络编程之HttpURLConnection
- Android网络编程之HttpUrlConnection
- 网络编程:HttpURLConnection使用介绍
- 网络编程:HttpURLConnection使用介绍
- Android HttpURLConnection和HttpClient获取网络内容
- 使用 HttpURLConnection 获取不到网络数据
- Linux 系统报错
- 解决Error:Could not find com.github.dcendents:android-maven-plugin:1.3解决方式
- java自带的MessageDigest实现文本的md5加密算法
- 去360总部参加网络信息安全会议经历
- 将DataGrid(gridview)中的数据赋值到datatable,只需要一句
- HttpURLConnection 网络编程 -- 获取页面
- inode是一个重要概念
- Linux磁盘组成
- restful和http的区别
- spring定时器使用(quartz 2.2, spring 4.3)
- 设计模式总结
- 设计模式之策略模式(java)
- JSP基础语法
- 快捷键