[Android基础]Android中使用HttpURLConnection

Android使用HttpURLConnection访问网络 Android上可以通过HttpURLConnection发送HTTP请求来访问网络,具体步骤如下: 1.获取HttpURLConncetion实例 通过调用url实例的openConnection()方法即可,代码如下: URL url = new URL("htp://www.baidu.com"); HttpURLConnection connection = (HttpURLCon... 阅读详情

HttpURLConnection继承了URLConnection,因此也可以向指定网站发送GET请求、POST请求。它在URLConnetion的基础上提供了如下便捷的方法。

int getResponseCode():获取服务器的响应代码。
String getResponseMessage():获取服务器的访问信息。
String getRequestMethod():获取发送请求的方法。
void setRequestMethod(String method):设置发送请求的方法。
我们通过两个例子来体会一下:
一、将网站的内容显示在界面上:
1、创建一个WebView

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

2、MainActivity.java

public class MainActivity extends Activity {

    private WebView webview;
    //通过Handler在子线程更新主界面的UI
    private Handler handler = new Handler();
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        webview = (WebView) findViewById(R.id.webView);
        new HttpThread("http://www.sina.com", webview, handler).start();
    }
}

3、创建一个子线程

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 httpUri = new URL(url);
            HttpURLConnection conn = (HttpURLConnection) httpUri.openConnection();
            conn.setReadTimeout(5000);
            conn.setRequestMethod("GET");   
            final StringBuffer sb = new StringBuffer();
            BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
            String str;
            while((str = reader.readLine()) != null)
            {
                sb.append(str);
            }
            handler.post(new Runnable() {

                @Override
                public void run() {
                //将数据加载到webview中
                    webview.loadData(sb.toString(), "text/html;charset=utf-8", null);
                }
            });
        } catch (MalformedURLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}

4、在AndroidManifest中添加权限:
android:name=”android.permission.INTERNET”

二、根据URL地址下载一张图片
1、创建一个webview

<ImageView 
        android:id="@+id/imageView1"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>

2、MainActivity.java

public class MainActivity extends Activity {

    private Handler handler = new Handler();
    private ImageView imageView;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        imageView = (ImageView) findViewById(R.id.imageView1);
        new     HttpThread("http://img5.duitang.com/uploads/item/201410/23/20141023211631_VKmfz.jpeg", imageView, handler).start();
    }

3、创建一个子线程



public class HttpThread extends Thread {
    private String url;
    private Handler handler;
    private ImageView imageView;
    public HttpThread(String url, ImageView imageView, Handler handler) {
        this.url = url;
        this.imageView = imageView;
        this.handler = handler;
    }
    @Override
    public void run() {
        try {
            URL httpUri = new URL(url);
            HttpURLConnection conn = (HttpURLConnection) httpUri.openConnection();
            conn.setReadTimeout(5000);
            conn.setRequestMethod("GET");
            //设置可以读取到输入流
            conn.setDoInput(true);
            InputStream in = conn.getInputStream();
            FileOutputStream out = null;
            String fileName = String.valueOf(System.currentTimeMillis());
            File downloadFile = null;
            if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED))
            {
                //获得SDcard的目录文件
                File parent = Environment.getExternalStorageDirectory();
                downloadFile = new File(parent, fileName);
                out = new FileOutputStream(downloadFile);
            }
            //缓冲区
            byte[] b = new byte[2 * 1024];
            int len;
            if(out != null)
            {
                while((len = in.read(b)) != -1)
                {
                    out.write(b, 0, len);
                }
            }
            final Bitmap bitmap = BitmapFactory.decodeFile(downloadFile.getAbsolutePath());
            handler.post(new Runnable() {

                @Override
                public void run() {
                    imageView.setImageBitmap(bitmap);
                }
            });
        } catch (MalformedURLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

4、在AndroidManifest中添加权限:
android:name=”android.permission.WRITE_EXTERNAL_STORAGE”

这样下载的图片就显示在界面上了。

安卓逆向(二)httpClient使用 在python里我们经常使用requests|urllib|httpx等进行网络请求,那么在Java中如何实现各种网络请求呢? 阅读详情

相关推荐

彻底解决android用HttpUrlConnection与web服务器之间session保持问题

彻底解决android开发中,使用用HttpUrlConnection与web服务器之间session保持问题

Android 网络编程系列(4)使用 HttpUrlConnection

前言在我们的应用中支持网络功能是绝对有必要的,大部分的应用程序都需要从服务器获取网络数据然后显示在界面中。前两篇文章我们介绍了 WebView 的一些用法和知识点。但是并非所有的网络功能都能通过 Webview 来实现,比如我们从服务器获取一段 json 数据,其中包含了我们想要的信息,这时候,我们就不能使用Webview 了,而是需要直接获取到一个 Http 请求的响应数据。我们可以使用 Htt...

weixin_34273481的博客 436

Kisssoft软件在行星齿轮设计上的初试

行星齿轮传动与链传动相比较,具有质量小,体积小,承载能力强,传动比大,传动效率高等优点,但在行星齿轮传动种种优点下,不可避免的带来一些缺点,对其材料的要求过高,在追求传动比大而体积小的同时,其传动结构大大的复杂化,以及在制造和安装过程中较困难,对于行星齿轮传动设计来说,不仅应该了解其优点,而且应该在设计中,充分发挥其优点,且把其缺点降低到最低的限度。从而才能设计出性能优良的行星齿轮传动装置,为我们赛车提供更加强大的动力保证。 Kisssoft软件为我们行星齿轮传动设计提供了一体化方案,从设...

m0_69808569的博客 1万+

Android中HttpUrlConnection使用步骤与总结

Android中HttpUrlConnection使用步骤与总结

弱水三千只取一瓢饮 1469

VFIO框架源码分析(二十二)- IOMMUFD 的脏页跟踪与 Dirty Bits 读取

在虚拟化热迁移(Live Migration)的场景中,脏页追踪(Dirty Page Tracking)是最具挑战性的环节之一。它的核心任务是实时捕获设备(DMA)对内存的写操作,以便 VMM(如 QEMU)知道哪些内存页需要被重新传输到目标主机。在强耦合与粗粒度:脏页追踪是绑定在 Container 上的。这意味着,如果一个 Container 内有多个设备,哪怕只有一个设备在写内存,脏页追踪也会影响 Container 内的所有设备。软件模拟开销大。

qq_36071928的博客 1042

VSCode终端打不开?3分钟搞定Windows下Terminal配置(附最新JSON设置方法)

本文针对Windows系统下VSCode终端无法启动的常见问题,提供了详细的诊断与解决方案。核心在于更新已弃用的旧配置,采用最新的JSON设置方法,通过定义`terminal.integrated.profiles.windows`和指定`terminal.integrated.defaultProfile.windows`,快速修复并优化终端配置,实现三分钟内恢复正常使用。

flower的专栏 740

Android HttpURLConnection详解

最近有一个项目需要重构网络部分代码,由于之前的网络部分都已经封装好,直接调用接口就行,重构的时候才发现,好多东西已经忘了,现在给大家总结出来,有需要的朋友可以拿走,文章的最后会有demo工程。 HttpURLConnection 早些时候其实我们都习惯性使用HttpClient,但是后来Android6.0之后不再支持HttpClient,需要添加Apache的jar才行,所以,就有很多开发者放弃...

weixin_34293246的博客 308

电机控制易混知识点1-基波频率/载波频率/采样频率

在电机控制学习工作中会接触到很多专业名词,其中基波频率,载波频率,采样频率是最常接触到的,特别对于电机控制小白开说,不容易理解,现对这几个概念做下总结归纳。

新能源电机控制工程师 | 聚焦实战问题,搭建互助平台 分享电机控制代码调试、现场故障排查、算法优化中的真实困惑;开放讨论电机基础知识以及工作中遇到难点等共性难题。拒绝单向输出,只做工程师的“技术树洞”与“解忧杂货铺”! 2191

Android——HttpURLConnection

一、HTTP HTTP:”超文本传输协议”,是互联网上应用最为广泛的一种网络协议,用于实现互联网中WWW服务,大多数网站都是使用HTTP协议访问的。 HTTP请求 HTTP请求是客户端和服务器端之间,发送请求和返回应答的标准(TCP)。 客户端发出一个HTTP请求后,就与服务器建立起了TCP连接,服务端接收到请求并进行处理后返回给客户端响应数据。 HTTP常用的请求方式 g...

lzq33521的博客 335

故障转移集群无法连接到节点_Windows 2012系统群集故障转移集群

理论知识很重要!集群和群集是什么意思?其实看到标题可能会感觉有点绕,简单易懂的来说一下:集群,英文名称为Cluster,集群的意思就是将多个系统连接在一起,可以让多台服务器能够像一台服务器那样工作。通常采用集群系统是为了提高系统的稳定性和网络中心的数据处理能力以及服务能力。第二个就是:群集,其实这个概念也不难理解,群集是把多个计算机连接在一起,形成整形,随后可以更好的利用设备资源的一项新...

weixin_39535283的博客 3250

YOLOv5源码逐行超详细注释与解读(5)——配置文件yolov5s.yaml

全网最详细的YOLOv5源码解读之配置文件yaml。逐行注释,逐句讲解,一文带你了解yaml。小白必看!

路人贾的博客 1万+

Android安卓使用HttpUrlConnection实现GET,POST请求,并解析数据

Android安卓使用HttpUrlConnection实现GET,POST请求,并解析数据 1.打开AndroidManifest.xml声明网络权限,声明后才能访问网络 <uses-permissionandroid:name="android.permission.INTERNET"/> 2.将activity_main.xml代码修改为下,button控件用于点击发生请求,ScrollView控件用于超出内容后实现滚动查看,TextView用于显示请求地址返回的数据 ..

qq_37196621的博客 1653

YOLOv8实战教程:从模型训练到改进的全流程指南

回顾这段YOLOv8的实战历程,从最初的模型训练到后来的各种改进尝试,我深刻体会到目标检测技术的魅力与挑战。YOLOv8作为一款优秀的框架,不仅易用性强,而且具备很强的可扩展性,让我能在其基础上不断创新。未来,我计划在以下几个方向继续探索:一是将YOLOv8与多模态技术结合,尝试实现图像与文本的联合目标检测;二是深入研究自监督学习在YOLOv8中的应用,减少对标注数据的依赖;三是探索YOLOv8在更广泛场景的部署,如机器人、自动驾驶等。

LXY_LOVE36的博客 279

Android httpUrlConnection的基本使用

今天,简单讲讲Android HttpUrlConnection的使用。 我在项目里是使用OK HTTP的,但是最近发现使用OK HTTP好多不知道的问题,感觉自己对基本的网络请求不是很好的掌握,所以学习一下基本的网络请求类:HttpUrlConnection。 一,HttpURLconnection的介绍 在Android开发中网络请求是最常用的操作之一, Android SDK中对H...

谢岩的博客 1万+

STM32 HAL PWM (占空比) -电机软启动不到位解决

为了避免电机启动电压大造成设备损坏,或者供电不足导致重启,通常在对启动都需要一个PWM进行软启动,下面对PWM电机软启动详细介绍。

weixin_44597885的博客 866

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

android 判断http编码格式,安卓入门笔记之HttpURLConnection的使用

1.HttpURLConnection连接URL1)创建一个URL对象URL url = new URL(http://www.baidu.com);2)利用HttpURLConnection对象从网络中获取网页数据HttpURLConnection conn = (HttpURLConnection) url.openConnection();3)设置连接超时conn.setConnectTim...

weixin_31849265的博客 457

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

安卓使用HttpURLConnection以get方式请求数据

1、实例化URL对象 URL url = new URL("https://www.baidu.com/s?ie=UTF-8&wd=get"); 2、通过URL对象打开链接获取HttpURLConnection的实例化对象 HttpURLConnection conn = (HttpURLConnection) url.openConnection(); 3、设置请求方式 conn.s...

怪大大的博客 1299

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

安卓使用HttpUrlConnection

使用HttpUrlConnection时注意事项 文章目录现象异常原因分析解决 现象 程序中使用了HttpUrlConnection,在低版本的安卓手机上程序运行正常,在高本版中发生异常 异常原因分析 1、安卓4.0之后,为防止ANR,主线程不允许访问网络。 2、android P之后,要求应用程序使用加密连接。 解决 针对1,将网络访问放到线程去处理。 针对2,google推荐的解决方法是使用https通信。如果仍然希望使用http通信,则在应用的AndroidManifest.xml配

harborian的博客 227

android httpurlconnection教程,Android安卓开发 HttpURLConnection使用教程笔记代码

package com.czh.httputil;import java.io.BufferedReader;import java.io.InputStream;import java.io.InputStreamReader;import java.net.HttpURLConnection;import java.net.URL;import/*** Created by Administr...

weixin_31201481的博客 228

安卓App使用HttpURLConnection发送请求与上传文件

本文主要讲解了HttpURLConnection工具发送 GET请求,POST请求,保存Response响应内容,JSON POST请求,以及如何上传文件,

Python技术探索 3599

Android中HttpURLConnection使用详解

Http协议的认识: Android中发送http网络请求是很常见的,要有GET请求和POST请求。一个完整的http请求需要经历两个过程:客户端发送请求到服务器,然后服务器将结果返回给客户端。 GET表示希望从服务器那里获取数据,而POST则表示希望提交数据给服务器。 通过Http访问网络的三个步骤: 1、发送http请求 2、接受服务响应 3、解析返回数据 HttpURLConnection类位于java.net包中,它用于发送HTTP请求和获取HTTP响应。 话不多说,直接上代码: 首先创建一个安卓项

小鹿麋鹿的博客 2767

Android使用HttpURLConnection下载图片

讲到http就必需要了解URI和URL URI (uniform resource identifier)统一资源标志符; URL(uniform resource location )统一资源定位符(或统一资源定位器); 可以理解成URL是URI的子集,URI是一抽象的标识符,URL可以理解成具体的标识符;只要是网络上的资源就能找到唯一的URL。

DMT专栏 6553

Android 中HttpURLConnection 的使用

首先是下载运行tomcat 0:GET 请求 别忘了权限 例如我的电脑的ip地址是192.168.1.106,那么通过HttpURLConnection 的GET方法下载一个图片的案例如下 package tech.androidstudio.readfileshttpurlconnection; import android.support.v7.app.AppCompat

Kodulf的专栏 3687

android httpurlconnection post 参数,使用httpurlconnection提交参数_post案例

上次把使用httpurlconnection提交参数_get案例给演示了,这次主要演示使用httpurlconnection提交参数_post案例。下面是布局代码和java代码。首先是布局代码下面是java代码package cn.xhhkj.xhhkjtest;import android.os.Bundle;import android.view.View;import android.wid...

weixin_35793308的博客 1042
上一篇: [经典书籍]编程经典书籍
下一篇: [设计模式学习]设计模式学习之简单工厂模式
陶程
博客等级 码龄12年 360粉丝 56原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值