MainActivity.java:

package thonlon.example.cn.httpurlconnectionpro;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;

public class MainActivity extends AppCompatActivity {

  private Button btn_req;
  private TextView tv_res;

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    initView();
  }

  private void initView() {
    btn_req = (Button) findViewById(R.id.btn_req);
    tv_res = (TextView) findViewById(R.id.tv_res);
  }

  public void onClick(View view) {
    sendRequestHttpURLConnection();
  }

  public void sendRequestHttpURLConnection() {
    new Thread(new Runnable() {
      @Override
      public void run() {
        String urlStr = "https://www.baidu.com";
        HttpURLConnection conn = null;
        BufferedReader reader = null;
        try {
        URL url = new URL(urlStr);
        conn = (HttpURLConnection) url.openConnection();
        conn.setRequestMethod("GET");
        conn.setConnectTimeout(8000);
        conn.setReadTimeout(8000);
        InputStream is = conn.getInputStream();
        reader = new BufferedReader(new InputStreamReader(is));
        StringBuilder response = new StringBuilder();
        String line = null;
        while ((line = reader.readLine()) != null) {
        response.append(line);
        }
        showResponse(response.toString());
        } catch (MalformedURLException e) {
          e.printStackTrace();
        } catch (IOException e) {
          e.printStackTrace();
        } finally {
          if (reader != null) {
          try {
            reader.close();
          } catch (IOException e) {
            e.printStackTrace();
          }
        }
        if (conn != null) {
          conn.disconnect();
        }
      }
     }
  }).start();
}

  private void showResponse(final String response) {
    runOnUiThread(new Runnable() {
    @Override
    public void run() {
      tv_res.setText(response);
    }
  });
}
}

安卓中使用HttpURLConnection连接网络简单示例 --Android网络编程的更多相关文章

  1. JAVA使用jdbc连接MYSQL简单示例

    以下展示的为JAVA使用jdbc连接MYSQL简单示例: import java.sql.DriverManager; import java.sql.ResultSet; import java.s ...

  2. Android中NDK的搭建及简单使用 Android.mk相关介绍 JNI的使用

    Android中NDK的搭建及简单使用: 使用NDK,简述其重要步骤:.搭建NDK环境(作用:用于自动生成jni下的.c对应的so文件)---到Android NDK官网或Android官网下载ndk ...

  3. 创建并在项目中调用SQLSERVER存储过程的简单示例

    使用SQLSERVER存储过程可以很大的提高程序运行速度,简化编程维护难度,现已得到广泛应用.创建存储过程 和数据表一样,在使用之前需要创建存储过程,它的简明语法是: 引用: Create PROC ...

  4. redis -- python操作连接redis简单示例

    1.先安装 redis,pyredis sudo pip install redis sudo pip install python-redis 2.示例: importredis >>& ...

  5. 在SAS数据步中执行过程步的简单示例

    SAS中的许多过程步都是封装好的,而且SAS的编程特点决定了只能是DATA步执行完之后再执行PROC步,或者PROC步执行完之后再执行DATA步.因此有时候DATA步只能利用PROC步执行完之后的结果 ...

  6. js中的Map对象的简单示例

    es6提供一个对象Map, 其功能类似于java中的Map, 下面是java中的Map和js中的Map的简单对比: js中的Map.set()相当于java中的Map.put(), js中的Map.s ...

  7. (转)关于List中FindAll用法的一些简单示例

    本文转载自:http://blog.csdn.net/luoxufeng/article/details/6925982 using System; using System.Collections. ...

  8. SQL左连接、右连接和内连接的简单示例

    left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录: right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录: inner join(等值连接 ...

  9. 关于C#List中FindAll用法的一些简单示例

    using System; using System.Collections.Generic; public partial class List : System.Web.UI.Page { pro ...

随机推荐

  1. mtr 命令

    mtr命令的使用: -r  --report  以报告的方式发布监测的结果 -s 30   指定发送包的大小  这个随意   按照自己的需求 -i 10  设置icmp协议返回包的时间 -n  no- ...

  2. centos6.8防火墙模块未加载

    使用阿里云服务器下的centos6.8系统,开启或关系或查询防火墙的状态时,提示防火墙模块未加载. 解决办法: modprobe ip_tables #加载ip_tables模块 modprobe i ...

  3. Vue学习【第一篇】:Vue初识与指令

    什么是Vue 什么是Vue Vue.js是一个渐进式JavaScript框架它是构建用户界面的JavaScript框架(让它自动生成js,css,html等) 渐进式:vue从小到控制页面中的一个变量 ...

  4. tp框架中的一些疑点知识-5

    关于vim中的缓存区的前后bp和bn的界定 通过命令ls可以看到 缓存区的 排序. 最开始打开的文件排在最上面, 序号最小. 那么它们就是 更 前 的缓冲区. 序号更前的用bp, 序号靠后的用bn. ...

  5. Miller_Rabin整理笔记

    目录 问题 别的 正事 代码 问题 一个数到底是不是素数 别的 首先列一下我们可以求素数的东西 根号暴力求 \(O(nloglogn)\)的埃氏筛 \(O(n)\)的欧拉筛 还有我们要学习的Mille ...

  6. 【问题解决:时区】连接MySQL时错误The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more than one time zone

    问题描述: MySQL升级到8.0.11之后连接数据库报错: Your login attempt was not successful, try again. Reason: Could not g ...

  7. centos7 mail

    For anyone wondering how to read these messages one by one, you can just use 'mail' $ mail Then type ...

  8. ASP.NET MVC AntiForgeryToken

    你开发一个网站,其中有个功能:新闻发布. 你是这样实现的: 1.保存新闻的方法是:/News/Save  POST提交 2.接受两个参数:title和content 有一天,你登录网站(浏览器会保存相 ...

  9. jmeter命令行模式运行,实时获取压测结果

    jmeter命令行模式运行,实时获取压测结果 jmeter很小,很快,使用方便,可以在界面运行,可以命令行运行.简单介绍下命令行运行的方式: sh jmeter.sh -n -t my-script. ...

  10. Oracle AMERICAN改成简体中文

    64位Oracle连接32位PLSQL_Developer时,在PLSQL_Developer安装的目录中新建了一个TXT文件,之后更名为start.bat,内容如下: @echo off set p ...