资讯专栏INFORMATION COLUMN

安卓中使用HttpURLConnection连接网络简单示例 --Android网络编程

songjz / 1817人阅读
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);
    }
  });
}
}

 

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/3013.html

相关文章

  • 如何给安卓 APP 安装听诊器,检查数据问题

    摘要:看过安卓日志的童鞋都知道,前尘往事并木有渺云烟,那些个天天在微信群里大呼小叫的群主来看看到底啥叫刷屏。可怜的安卓开发们,天天被日志刷屏。 开发者在开发中想查看安卓APP运行时的网络访问和数据存储情况,调试太麻烦,日志也挺烦,有没有更好的办法呢?Facebook给广大开发者传了福音,带了福利,放在下午茶的小桌子上,美食干货不敢独吞,所以拿来分享给大家 从事移动端安卓APP的开发,除了代码...

    el09xccxy 评论0 收藏0
  • android + php 后台开发

    摘要:安卓与服务器的数据交互在我们进行开发的时候,避免不了的要进行登录注册,个人信息获取,数据交互等等这一系列的操作。而与之间的数值传递是通过数据类型。创建对象并添加数据。第五步就是进行数据的解析,获取后台返回的数据。android+php 安卓与服务器的数据交互 在我们进行android开发的时候,避免不了的要进行登录注册,个人信息获取,数据交互等等这一系列的操作。这样就需要进行android端...

    warkiz 评论0 收藏0
  • 学习安卓开发[5]

    摘要:因为网络操作通常比较耗时,如果在主线程线程中直接操作,会导致界面无响应的现象发生。所以系统禁止任何主线程的网络连接行为,否则会报。在上一篇学习安卓开发[4] - 使用隐式Intent启动短信、联系人、相机应用中了解了在调用其它应用的功能时隐式Intent的使用,本次基于一个图片浏览APP的开发,记录使用AsyncTask在后台执行HTTP任务以获取图片URL,然后使用HandlerThrea...

    warmcheng 评论0 收藏0
  • Android 网络请求详解

    摘要:使用的网络请求是基于,我们着重说明一下。如果两种网络请求都想使用怎么办那么是一个最佳解决方案了。在网络请求方面的口碑很好,就连自己也有使用。,监控网络请求及网络错误,提升用户留存。 我们知道大多数的 Android 应用程序都是通过和服务器进行交互来获取数据的。如果使用 HTTP 协议来发送和接收网络数据,就免不了使用 HttpURLConnection 和 HttpClient,而 ...

    cloud 评论0 收藏0
  • Android实战之你应该使用哪个网络库?

    摘要:网络库对比获得了巨大的社区的支持,以至于最终是将它作为了默认的,并且会在之后弃用。事实上,从开始,所有的网络操作都必须强制在单独的线程中进行。到现在,我发现应该把这些网络库的关系表述在一张图中。 本篇为翻译文章 原文地址这里 如果正在学习Android,建议可以参考笔者的我的编程之路——知识管理与知识体系 [TOC] 前言 目前基本上每个应用都会使用HTTP/HTTPS协议来作为主要的...

    WelliJhon 评论0 收藏0

发表评论

0条评论

songjz

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<