安卓网络通讯小结

okhttp的应用详解与源码解析--android网络请求框架发展史 主要分析以下几个框架 HttpClient HttpURLConnection AsyncHttpClient Volley OkHttp Retrofit 文章目录底层网络框架封装的网络框架HttpClientHttpURLConnection存在的问题及解决VolleyOkHttpRetrofitRxJava+Retrofit+OkHttp 底层网络框架 HttpClient, HttpU... 阅读详情

1.GET和POST的区别

Post请求可以向服务器传送数据,数据对用户不可见。而get是把参数数据队列加到提交的URL中,例如(http://www.baidu.com/s?w=%C4&inputT=2710)

get 传送的数据量较小。post传送的数据量较大。

get安全性非常低,post安全性较高。

2.HttpURLConnection请求网络数据实例

首先获取网络访问权限,在AndroidMainfest文件夹下在mainfast属性下添加一段代码:

<uses-permission android:name="android.permission.INTERNET"/>

在主函数中实现

package com.example.demo5;

import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Handler;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;

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 Main4Activity extends AppCompatActivity {
    private Button main4_btn;
    private ImageView imageView;
    private Handler handler=new Handler(){
        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
            Bitmap bi= (Bitmap) msg.obj;
            imageView.setImageBitmap(bi);
        }
    };
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main4);
        main4_btn=findViewById(R.id.main4_btn);
        imageView=findViewById(R.id.main_iv);
        main4_btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                new Thread(new Runnable() {
                    @Override
                    public void run() {
                        getWebInfo();

                    }

                }).start();
            }

        });


    }

        private void getWebInfo() {
        try {

            URL url=new URL("https://www.baidu.com.cn");
            HttpURLConnection connection= (HttpURLConnection) url.openConnection();
            InputStream inputStream=connection.getInputStream();
            InputStreamReader reader=new InputStreamReader(inputStream);
            BufferedReader bufferedReader=new BufferedReader(reader);
            String temp="";
            StringBuffer stringBuffer=new StringBuffer();
            while ((temp=bufferedReader.readLine())!=null){
                stringBuffer.append(temp);
            }
            Log.e("WEB", "getWebInfo:*****************************"+stringBuffer.toString() );
        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

    }

}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:orientation="vertical"
    android:layout_height="match_parent"
    tools:context=".Main4Activity">
    <Button
        android:id="@+id/main4_btn"
        android:layout_width="match_parent"
        android:layout_height="40dp"
        android:text="点击上网"/>
    <ImageView
        android:id="@+id/main_iv"
        android:scaleType="centerCrop"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

</LinearLayout>

2.HttpURLConnection加载网络图片实例

图片url地址只需要在网络里随便找一张图片,右击它选择获取图片地址。

package com.example.demo5;

import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Handler;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;

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 Main4Activity extends AppCompatActivity {
    private Button main4_btn;
    private ImageView imageView;
    private Handler handler=new Handler(){
        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
            Bitmap bi= (Bitmap) msg.obj;
            imageView.setImageBitmap(bi);
        }
    };
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main4);
        main4_btn=findViewById(R.id.main4_btn);
        imageView=findViewById(R.id.main_iv);
        main4_btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                new Thread(new Runnable() {
                    @Override
                    public void run() {

                        getWebInfoImg();
                    }

                }).start();
            }

        });


    }
    private void getWebInfoImg() {
        try {
            URL url=new URL("https://timgsa.baidu.com/timg?image&quality=80&size=b10000_10000&sec=1528451090&di=5c8702bf9473c14aa7bf6e130d625dc5&src=http://img4.duitang.com/uploads/item/201407/12/20140712214636_QeyrJ.jpeg");
            HttpURLConnection connection= (HttpURLConnection) url.openConnection();
            InputStream inputStream=connection.getInputStream();
            Bitmap bitmap=BitmapFactory.decodeStream(inputStream);
            Message message=handler.obtainMessage();
            message.obj=bitmap;
            handler.sendMessage(message);
        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

    }




}

layout文件和2相同
4.String/StringBuffer/StringBuilder有什么区别
String 字符串常量
String 是不可变的对象, 因此在每次对 String 类型进行改变的时候其实都等同于生成了一个新的 String 对象
StringBuffer 字符串变量(线程安全)
每次结果都会对 StringBuffer 对象本身进行操作,而不是生成新的对象,再改变对象引用
StringBuilder 字符串变量(非线程安全)
一个类似于 String 的字符串缓冲区,但不能修改,可将字符串缓冲区安全地用于多个线程。可以在必要时对这些方法进行同步,因此任意特定实例上的所有操作就好像是以串行顺序发生的,该顺序与所涉及的每个线程进行的方法调用顺序一致。

2025年7月5日全国青少年信息素养大赛图形化(Scratch)编程小学低年级组复赛真题+答案 阅读详情

相关推荐

线性代数笔记【空间曲面】

二次曲面 曲面可以看成是一个动点或一条动曲线按照一定条件或规律运动产生的轨迹 曲面的方程即是该动点的坐标所满足的方程 空间解析几何中,一般会涉及到由曲面写方程和由方程看曲面两种类型问题 曲面与曲面方程 球面方程 球面:空间内与定点的距离等于定长的点的集合 这一定点叫球心,定长叫半径 标准方程 (x−x0)2+(y−y0)2+(z−z0)2=r2(x-x_0)^2+(y-y_0)^2+(z-z_0)^2=r^2(x−x0​)2+(y−y0​)2+(z−z0​)2=r2 球心P0(x0,y0,z0)P_0(

qq_40500005的博客 3246

android 网络通信的六种方式 吸收总结

Android的网络编程分为2种:Socket网络通信和Http网络通信。 Http通信以xml或者json(JavaScript Object Notation)为载体,相互通信数据。json:一种简单的数据格式,比xml更轻巧。json 是JavaScript原生格式,这意味着在JavaScript中处理json数据不需要任何特殊的API或工具包。 Socket与Http不同的是两个的协议

AndryZYF的专栏 614

synopsys工具安装系列(一)安装installer

synopsys为eda工具安装,提供了一个安装器,名叫installer。所以,首先要先安装installer这个工具,之后才能安装其他的eda工具。 首先从官网下载该installer工具。我这里下载的是5.2版本 下载之后,有如下安装文件。 将该安装包,拷贝到linux服务器中。 首先给SynopsysInstaller_v5.2.run赋予可执行权限。 chmod a+x SynopsysInstaller_...

weiqi7777的博客 8391

android之网络通信详解

TCP、UDP TCP---传输控制协议,提供的是面向连接、可靠的字节流服务。当客户端和服务器彼此交换数据前,必须先在双方之间建立一个TCP连接,之后才能传输数据。TCP提供超时重发,丢弃重复数据,检验数据,流量控制等功能,保证数据能从一端传到另一端。   UDP---用户数据报协议,是一个简单的面向数据报的运输层协议。UDP不提供可靠性,它只是把应用程序传给IP层的数据报发送出去,但是并不...

zyz18813049204的博客 3168

通达信双紫擒龙指标实战指南:从源码解析到精准安装

本文详细解析了通达信双紫擒龙指标的核心逻辑、源码获取与安全验证、安装流程及实战应用技巧。通过紫紫红黄四种颜色信号捕捉趋势转折点,结合MACD、布林通道和成交量加权算法,提升交易准确性。文章还提供了个性化设置、信号解读及常见问题解决方案,帮助投资者高效运用该指标。

weixin_29248611的博客 1054

[3D检测系列-PV-RCNN] PV-RCNN实战指南:从论文解析到代码调试全流程

本文提供了PV-RCNN在3D目标检测领域的实战全流程指南。文章深入解析了其Point-Voxel融合的核心思想,并详细演示了从环境搭建、数据准备、代码复现到模型训练与调试的具体步骤,特别针对常见的报错问题给出了解决方案,帮助开发者高效掌握这一经典算法。

weixin_29189381的博客 480

【小沐学Android】Android实现socket网络通信

🍺SOCKET网络通信系列文章链接如下:🍺 🎈【小沐学python】(一)Python简介和安装🎈 🎈Python实现socket网络通信🎈 🎈C++实现socket网络通信(Windows)🎈 🎈Android实现socket网络通信🎈 🎈nodejs实现socket网络通信🎈 Android实现socket网络通信1、简介1.1 socket流程1.2 需要在子线程运行1.3 需要的权限2、环境配置2.1 Android Studio下载2.2 真机无线调试3、TCP方式3.1 服务端3.2 客户端3

爱看书的小沐 1万+

Ubuntu 22.04 安装 IsaacLab 2.1.0

本文介绍了IsaacLab的完整安装流程:1)创建Python3.10虚拟环境;2)安装PyTorch2.5.1(CUDA11.8);3)升级pip并安装IsaacSim4.5.0;4)克隆IsaacLab仓库;5)运行安装脚本(需接受EULA)。若遇cmake缺失错误,需执行sudo apt安装。安装完成后可通过Ant-v0训练任务验证,成功运行后将显示IsaacSim窗口和训练完成提示。注意:IsaacSim不同版本可共存于不同环境。

weixin_47880303的博客 2224

Android网络开发(一、Socket通信&HTTP通信)

Socket:即套接字,其本身并不是一种通信协议,它是封装了TCP/IP、UDP 协议的API实现。在创建Socket对象后,底层会完成TCP/IP的三次握手等(UDP协议对应的API是DatagramSocket)。

BC工坊 3590

机器学习入门指南:Jupyter Notebook实战

对于机器学习工程师而言,他们更擅长的是算法、模型、数据探索的工作,而对于工程化的能力则并不是其擅长的工作。Jupyter Notebook生成PMML文件1​​​​​​​。Jupyter Notebook生成PMML文件2​​​​​​​。PySpark Notebook建模 -折线图​​​​​​​。TensorFlowNotebook建模​​​​​​​。R Notebook建模 - 散点图​​​​​​​。PySpark Notebook建模​​​​​​​。R Notebook获取训练数据集​​​​​​​。

datacreating的博客 1975

2026.3.9:具身智能之GraspNet:Ubuntu24.04安装GraspNet

本文详细介绍了在Ubuntu24.04系统下安装GraspNet具身智能框架的全过程。主要包括:1) 创建Python3.9虚拟环境;2) 安装CUDA12.8和PyTorch2.7.0等基础依赖;3) 编译安装pointnet2、knn和graspnetAPI三个核心组件;4) 修改源码适配新版PyTorch;5) 下载预训练权重并成功运行demo。安装过程中特别提示了可能遇到的报错处理方案,最终在GPU环境下实现了GraspNet的部署运行。整个流程涵盖了从环境配置到项目运行的完整步骤,为具身智能研究者

拥抱具身智能,昇腾Ascend C 204

(七) 安卓之网络通信

在安卓应用开发中,网络通信是实现与服务器交互、数据同步和实时通信的重要部分。掌握不同的网络通信方法,可以帮助开发者构建功能丰富且响应迅速的应用。本文将介绍安卓开发中常用的网络通信方法、关键概念、实现方式以及一些实践示例,帮助你全面掌握安卓网络通信技术。掌握安卓网络通信技术是开发现代应用的关键。通过本文的介绍和实践示例,希望你对安卓网络通信方法有一个全面的了解,并在实际开发中灵活应用。持续学习和实践是掌握网络通信技术的关键,祝你在安卓开发的道路上取得成功!

小新的博客 1182

完整的 Python 数据分析案例:新能源汽车续航里程预测

随着新能源汽车的普及,续航里程成为消费者关注的重要指标。准确预测新能源汽车的续航里程,有助于车企优化电池管理系统、提升车辆性能,也能帮助消费者合理规划出行。本案例将基于新能源汽车的各项参数,如电池容量、行驶速度、环境温度等,构建续航里程预测模型。通过以上改进,可以提高数据处理的准确性、模型的性能和可视化的效果。

daqsdfas的博客 1588

cocos2d-x 基于BSD Socket网络通讯模块小结

原帖地址:http://www.cnblogs.com/just-live/archive/2012/04/28/socket_cocos2dx.html   水平有限, 敬请见谅------ 最近cocos2d-x项目需求, 写了个客户端的基于TCP的网络通讯模块(ios, android, win32), 把使用到的东东和遇到的问题记录下来. 1. 预备知识: 线程,互斥锁,信号量:

comhaqs的专栏 1266

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

android iptables清空,Android iptables 今天小结

今天折腾了一天,试了好多iptables命令,发现和正常的Linux的iptables的命令好多不一样,在Android下的一些命令并不工作。这可能刚接触这一块知识,或者命令可能需要先设置后才设置别的,这只是我的假设,继续折腾吧~总结如下:1、禁止所有通讯 -- 正常工作Html代码 iptables-PINPUTACCEPTiptables-POUTPUTDROPiptables-...

weixin_42388485的博客 428

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Android重要知识点小结

1.android单实例运行方法单实例运行方法:: 我们都知道Android平台没有任务管理器,而内部App维护着一个Activityhistorystack来实现窗口显示和销毁,对于常规从快捷方式运行来看都是startActivity可能会使用FLAG_ACTIVITY_NEW_TASK标记来打开一个新窗口,比如Launcher,所以考虑单任务的实现方法比较简单,首先Android123纠正下大家一种错误的方法就是直接在 androidmanifest.xml的application节点中加入an...

QY'UniverseSpace的博客 301

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Android NIO(Noblocking I/O非阻塞I/O)小结

参考:http://www.cnblogs.com/cpcpc/archive/2011/06/27/2123009.html 对于Android的网络通讯性能的提高,我们可以使用Java上高性能的NIO (New I/O) 技术进行处理,NIO是从JDK 1.4开始引入的,NIO的N我们可以理解为Noblocking即非阻塞的意思,相对应传统的I/...

weixin_33816611的博客 139

Android个人学习小结2016.5

以下内容仅为个人初学Android小结及生活,不太适合其他人看。1、 让图片子元素水平 垂直居中<LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="center|center_horizontal|c

forgot2015的博客 475

武汉腾讯会议Android面试题

1.数组和链表的区别 2.Hashmap实现原理 3.TCP和UDP的区别,那个速度更快 4.Http报文头所包含的内容 5.Handler底层原理 6.Binder底层原理 7.Glide实现原理 8.APP性能优化 9.Flutter/React Native底层原理 10 .有哪几种引用,有什么区别 11 .线程同步的方法,有什么区别,怎么避免死锁 12.进程和线程的区别 ......

无风全靠浪 27万+

【我的Android进阶之旅】TCP和UDP的优缺点及区别

  TCP的优点: 可靠,稳定 TCP的可靠体现在TCP在传递数据之前,会有三次握手来建立连接,而且在数据传递时,有确认、窗口、重传、拥塞控制机制,在数据传完后,还会断开连接用来节约系统资源。 TCP的缺点: 慢,效率低,占用系统资源高,易被攻击 TCP在传递数据之前,要先建连接,这会消耗时间,而且在数据传递时,确认机制、重传机制、拥塞控制机制等都会消耗大量的时间,而且要在每台设备上维护所有的传...

【我的Android进阶之旅】 1386

第一章 charles安装

charlescharles介绍简介安装安装证书电脑上如何抓包电脑上安装证书电脑上抓包手机安装证书 charles介绍 简介 Charles其实是一款代理服务器,通过成为电脑或者浏览器的代理,然后截取请求和请求结果达到分析抓包的目的。该软件是用Java写的,能够在Windows,Mac,Linux上使用,安装Charles的时候要先装好Java环境。 Charles是在 常用的网络封包截取工具,在做移动开发时,我们为了调试与服务器端的网络通讯协议,常常需要截取网络封包来分析。Charles 通过将自己设置成

sun9102的博客 400

android逃逸技术汇编,启明星辰翟胜军:高级逃逸技术AET

接下来了解一下AET技术的能量,为什么AET出现这么多年炒架不热的原因。那么AET到底有多大能量呢?我们都知道TCPIP是最基础的协议,最开始的时候质量很差,为了传输好网络通讯,尽量能通过就通过,发现了错包坏包尽量能够实现用途所以我们都知道在TCP协议中有一个,发数据包的时候比较大,我们发成几个字节,正常一块一块发。作第一个环节上随便加了一个协议,那么可能是150长也可能是80个长度,第一个分片发...

weixin_29116255的博客 316

计算机研究生毕业论文提纲,计算机硕士毕业论文提纲范文

计算机硕士毕业论文提纲范文论文提纲简单来说就是整篇文章的总体思路、逻辑图表和结构框架,下面是小编搜集整理的计算机硕士毕业论文提纲,欢迎阅读参考。论文提纲范例一:第一章 绪论11.1研究背景及研究意义 11.2文章的结构 21.3文章的特色 3第二章CPFR统计管理模式 52.1供应链管理与CPFR 52.1.1供应链管理的发展 52.1.2 什么是CPFR 62.2统计与CPFR的结合 72.3国...

weixin_42116713的博客 1012

DDPush 任意门消息推送 开源免费实时信息推送服务器

在好几年前,就已经注意到DDPush这款推送中间件,不过看近来发展也还是停留在V1.0的基础上,不免惋惜!恰好最近正在深入研究Java Socket通信编程,也顺带再看看这款应用。官网地址:http://www.ddpush.net/ 目录 DDPush 任意门 消息推送 DDPush是什么 DDPush可以做什么 移动互联网消息推送 IM实时消息系统核心组件 物联网设备控制与交互 ...

纸上得来终觉浅,绝知此事要躬行 5666
上一篇: AsyncTask小结
下一篇: JSON小结
光之皓月
博客等级 码龄10年 3粉丝 24原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值