`
Spiritualize_彭韬
  • 浏览: 25740 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

Android中的Http通信

 
阅读更多

HttpUrlConnection

一.访问网页

  1.在activity_main.xml中定义布局WebView(要添加权限)

 

<WebView
        android:id="@+id/webView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        />

 2.在MainActivity中开启线程HttpThread访问网络

 

  

new HttpThread("http://www.baidu.com",webView,handler).start();

  HttpThread.java

 

   

public class HttpThread extends  Thread{
    private String url;
    private WebView webView;

    private Handler handler;

    public HttpThread(String url, WebView webView, Handler handler) {

        this.url = url;
        this.webView = webView;
        this.handler = handler;

    }
    @Override
    public void run() {
         try {
             URL httpUrl = new URL(url);
             HttpURLConnection conn = (HttpURLConnection)httpUrl.openConnection();
             conn.setReadTimeout(5000);      //设置访问超时
             conn.setRequestMethod("GET");   //访问方式
//         1.访问http网址
             final StringBuffer sb = new StringBuffer();
            BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream()));
            String str;
            while ((str = br.readLine()) != null){
                sb.append(str);
            }
            handler.post(new Runnable() {
                @Override
                public void run() {
                    webView.loadDataWithBaseURL(url, sb.toString(), "text/html", "uft-8", null);
                }
            });
        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

    }
}

 

 

二.访问图片(要添加权限)

   1.在activity_main.xml布局

  

<ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/imageView"/>

   2.在MainActivity开启线程HttpThread下载并访问图片

  

public class HttpThread extends  Thread{
    private String url;
    private ImageView imageView;
    private Handler handler;

    public HttpThread(String url, ImageView imageView, Handler handler) {

        this.url = url;
        this.imageView = imageView;
        this.handler = handler;

    }

    @Override
        public void run() {
            try {
                URL httpUrl = new URL(url);
                HttpURLConnection conn = (HttpURLConnection)httpUrl.openConnection();
                conn.setReadTimeout(5000);      //设置访问超时
                conn.setRequestMethod("GET");   //访问方式
//            2.访问网络图片,下载可省略
                conn.setDoInput(true);
                InputStream in = conn.getInputStream();
                FileOutputStream fos = null;
                String filename = String.valueOf(System.currentTimeMillis());
                File downloadFile = null;
                if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){
                    File parent = Environment.getExternalStorageDirectory();
                    downloadFile = new File(parent,filename);
                    fos = new FileOutputStream(downloadFile);
                }
                byte[] datas = new byte[2*1024];
                int len;
                if(fos != null) {
                    while ((len = in.read(datas)) != -1) {
                        fos.write(datas, 0, len);
                    }
                }
                final Bitmap bitmap = BitmapFactory.decodeStream(in);

 handler.post(new Runnable() {
                @Override
                public void run() {
                      imageView.setImageBitmap(bitmap);
                }
            });
        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

    }
}

 

分享到:
评论

相关推荐

    Android中Http通信

    在Android应用开发中,Http通信是连接服务器获取或发送数据的一种常见方式。本文将深入探讨Android平台下如何实现Http通信,以及涉及的相关知识点。 一、HTTP协议基础 HTTP(超文本传输协议)是一种用于分布式、...

    慕课网 Android中的Http通信 笔记及源码

    在Android应用开发中,Http通信是连接服务器获取或发送数据的重要手段。本笔记及源码主要探讨了如何在Android环境中实现Http通信,包括基础理论、常用库的使用以及实际操作中的注意事项。 一、Http通信基础 Http...

    android的Http通信

    在Android开发中,进行HTTP通信是常见的操作,用于与服务器交换数据。HTTP(超文本传输协议)是一种基于TCP/IP通信协议来交换数据的应用层协议,广泛应用于网页浏览、API交互等场景。本教程将深入讲解如何在Android...

    Android网络编程之Http通信

    Android网络编程是移动应用开发中的一个重要组成部分,而Http通信则是网络编程中最常用的协议之一。在Android平台上,我们通常会使用HttpURLConnection或者第三方库如Apache HttpClient和OkHttp等进行Http通信。 1....

    android http通信demo

    android 当中涉及到网络编程的部分经常会用到http通信,同时android也为我么您提供了HttpUrlConnection接口和HttpClient接口,大大的方便了开发。Http通信又分为两种方式:get和post,get可以uoqu静态页面,传入参数...

    android网络通信方式

    Android 中常用的网络通信方式有 Socket 通信、HTTP 通信等。本文将详细介绍 Socket 通信在 Android 中的应用。 一、Socket 通信 Socket 是一种常用的网络通信方式,用于描述网络上的一个设备中的一个进程或者应用...

    android HTTP通信例子(json数据传递)

    在Android应用开发中,HTTP通信是连接客户端与服务器端的重要桥梁,主要用于数据交换、文件上传和下载等操作。本示例将重点讲解如何在Android应用中实现基于HTTP的JSON数据传递,以及如何处理文件的上传和下载。 ...

    Android跨进程通信demo

    在Android系统中,跨进程通信(IPC,Inter-Process Communication)是实现不同应用程序之间数据交换的关键技术。Android的IPC机制主要包括Binder、AIDL(Android Interface Definition Language)、ContentProvider...

    Android系统应用开发 实验五 网络通信 实验报告

    在Android系统应用开发中,网络通信是至关重要的一个环节,特别是在构建交互性强的应用时。本实验旨在让学生深入了解Android网络通信技术,并通过实际操作掌握不同类型的网络通信方式,包括利用WebView实现浏览器...

    android与服务器通信

    在Android应用开发中,与服务器进行通信是必不可少的环节,特别是在构建涉及用户登录、数据交换等应用场景时。本文将深入探讨Android与服务器通信的基本概念、技术选型以及具体实现方式,以标题“android与服务器...

    Android-HTT.zip_android_htt:2360.com

    "Android HTT.ppt"这份资料很可能详细介绍了上述内容,包括Android开发环境的搭建、HTTP协议详解、Android中HTTP通信的实现方式以及相关的最佳实践。通过学习,你可以深入理解Android网络编程的核心概念,并具备实际...

    Android中的Http通信(二)

    Http通信。通过两个例子: &gt; 网络请求到百度的网页,展示到一个webview上。 &gt; 网络请求一张图片,展示到界面的ImageView上。

    android 中的数据通信

    在Android系统中,数据通信是应用之间以及应用与外部设备之间交换信息的关键环节。这篇博客“android中的数据通信”可能涵盖了Android数据通信的各种方法和技术,包括本地数据存储、网络通信和蓝牙等。以下是对这些...

    Android-netty和socket通信的demo

    在Android开发中,网络通信是不可或缺的一部分,而Netty是一个高效、强大的网络应用程序框架,它为构建高性能、稳定的网络服务器提供了便利。本示例“Android-netty和socket通信的demo”将展示如何在Android平台上...

    Android开发—网络通信7—Android中基于HTTP的通信技术视频教程下载(2课程).txt

    使用Http的Get方式读取网络数据.mp4

    Android串口通信demo(AS)

    **Android串口通信**是Android应用开发中的一个重要领域,它允许设备通过串行接口与其他硬件设备进行数据交换,如Arduino、PLC等。在本文中,我们将深入探讨如何在Android Studio中实现串口通信,以及如何利用提供的...

    Android_Service通信

    Android下的服务与其他组件之间的通信,跨进程通信等示例。具体可以参见博客:http://www.cnblogs.com/plokmju/p/android_ServiceCommunication.html

    Android与Javaweb服务器通信

    在提供的"android与服务器端交互demo"文件中,可能包含了Android客户端的HTTP请求示例代码以及简单的Java Servlet示例,通过分析和运行这些代码,你将更深入地理解Android与服务器通信的过程。记得在实际项目中,...

    Android蓝牙通信

    Android蓝牙通信,连个手机直接通信,收发数据,界面简洁友好,代码易懂。使用的是虚拟串口通信,波特率9600,也可以和其他非手机端蓝牙设备通信,只要使用协议相同就行了。我的博客有说明...

Global site tag (gtag.js) - Google Analytics