首页 > 其他分享 >安卓快速掌网络请求HttpUrlConnection

安卓快速掌网络请求HttpUrlConnection

时间:2023-11-04 10:11:35浏览次数:29  
标签:HTTP 请求 安卓 网络 HttpUrlConnection new 连接 httpURLConnection

HttpURLConnection 是 Java 标准库中的一部分,它不依赖于特定的 Android 版本。,从 Android 9(API 级别 28)开始,Google 官方推荐使用更现代化的网络库,例如 OkHttp 或 Volley。这些库提供更简洁、强大和易用的 API,并具备更好的性能和安全性。但是仍然可以用这个简单实现了解网络请求原理.

背景知识

网络请求分为很多种,比如HTTP   HTTPS  soket 等,先演示一下最常用的HTTP请求

Http是Internet中广泛使用的协议,几乎所有的计算机语言和SDK都会不同程度地支持HTTP,而以网络善称的Google公司自然也会使Android SDK拥有强大的HTTP访问能力。在Android SDK中可以采用多种方式使用HTTP,例如HttpURLConnection、HttpGet、HttpPost等,HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展。。
HTTP协议的主要特点可概括如下:
1、支持客户/服务器模式
2、简单快速:客户向服务请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同由于HTTP协议简单,使得HTTP服务器的程序规横小,因而通信速度很快。
3、灵活: HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记
4、无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间
5、无状: HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。

基础知识

//    http://127.0.0.1/frbments?id=3    //这个地址分为四部份,前缀,基本地址,请求地址,参数
最简单的请求核心示例如下,非完整代码,完整代码需要导包,配置权限,配置异步请求,在安卓3.0开始不建议在主线程发起网络请求
package com.example.myapplicationmneu;
public class MainActivity extends AppCompatActivity {
private String UrlAddress = "http://localhost:8080/frbqd/#/login?ct=6Ad6z7vDKvS4ovBIcYbTdz7z5740Flxl/";

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 按扭点击监听函数绑定
findViewById(R.id.btn_notification).setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View view) {
}
});
}
private void doGet(String s) throws IOException {
// 第一步,拼接网络请求地址
String getUrl = UrlAddress ;
// 第二步,得到一个网络请求url对象,从代码来看httpURLConnection是url的其中部分
URL url = new URL(getUrl);
// 第三步,创建连接对象
HttpURLConnection httpURLConnection =(HttpURLConnection) url.openConnection();
// 第四步,开始连接,一旦创建成功,此时这个对象就在连接了,就可以用流的方式得到数据
httpURLConnection.connect();
// 第五步,判断状态码如果是200.开如外理流对象
if(httpURLConnection.getResponseCode()==200){
// 得到流对象
InputStream inputStream = httpURLConnection.getInputStream();
//创建读取流的对象
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
//创建字符流对象
StringBuffer stringBuffer = new StringBuffer();
// 创建临时何存字符的字段串
String readList = "";
// 如查下一行没有数据表示读完,停止
while((readList = bufferedReader.readLine()) != null){
stringBuffer.append(readList);
}
// 关闭流和连接
inputStream.close();
httpURLConnection.disconnect();
Log.d("打印结果","falil");
}
}
}                                                                                    

标签:HTTP,请求,安卓,网络,HttpUrlConnection,new,连接,httpURLConnection
From: https://www.cnblogs.com/ZzwWan/p/17808864.html

相关文章

  • laravel中间件简单实用Middleware 过滤HTTP请求
    1,创建中间件phpartisanmake:middlewareActivery2,中间写过滤publicfunctionhandle($request,Closure$next){if($request->age<20){returnredirect('home');}return$next($request);},3,注册中间件kernelprotected$routeMiddleware=[&......
  • 安卓主板_android主板_联发科MTK方案平台PCBA定制
    安卓主板是一种采用ARM架构并内置Android操作系统的嵌入式智能主板。相比于Linux,安卓主板在消费级和商用嵌入式智能终端市场非常成熟。与传统的单片机相比,安卓主板具有更高的性能和更丰富的接口,可以满足更复杂的开发和应用需求。目前,安卓主板在主流行业领域的应用方向包括AI人......
  • C#的Web请求WebClient之https根据验证过程,远程证书无效
    ServicePointManager.ServerCertificateValidationCallback+=(sender,certificate,chain,sslPolicyErrors)=>true;using(WebClientclient=newWebClient()){stringurl="https://api.example.com/data";......
  • MT8365安卓核心板_MTK8365/I350核心板规格参数
    MT8365安卓核心板是一款基于联发科MTK8365芯片开发的强大核心板。它采用模块化设计,内置1GB+8GB的存储空间(可选配置包括2GB+16GB、3GB+32GB和4GB+64GB),默认搭载谷歌的Android11.0操作系统。该核心板具有丰富的接口功能,包括LCM、摄像头、触摸屏、麦克风、扬声器、UART、USB、I......
  • postman Pre-request Script(预处理)post请求获取sign(接口鉴权)
    背景请求业务接口时需要先调用auth应用的鉴权接口获取sign(类似其他系统登录接口返回的token),否则会提示:鉴权失败,从而导致业务接口无法使用。获取sign接口请求参数为业务接口的请求参数,所以Pre-requestScript(预处理)post请求内的body为变量。一、Pre-requestScript(预处理)......
  • springboot post请求的content-type
    content-type是http请求的响应头和请求头的字段。当作为响应头时,告诉客户端实际返回的内容的内容类型。作为请求头时(post或者put),客户端告诉服务器实际发送的数据类型。在前端开发过程中,通常需要跟后端工程师对接接口的数据格式,不同的数据类型对于服务器来说有不同的处理方式,因此......
  • php: ajax请求,在返回信息前面出现ufeff红点,导致解析错误
    问题:ajax请求,在返回信息前面出现ufeff红点,导致解析错误原因:PHP文件格式编码位utf-8bom  文件编码是含BOM的会导致出现这种情况解决:  第一种方法:PHP文件格式编码转化为utf-8  第二种方法:在接口echo输出前面,添加一个ob_clean()函数           ......
  • python 如何优雅的使用retrying进行重试请求
    retrying模块一、简介retrying是一个python的重试包,可以用来自动重试一些可能运行失败的程序段,retrying提供一个装饰器函数retry,被装饰的函数就会在运行失败的情况下重新执行,默认只要一直报错就会不断重试安装:pipinstallretrying二、使用方法1、无参数使用r......
  • 在axum中获取请求数据
    在日常开发中,我们需要与用户进行交互,从各种渠道获取用户输入,包括但不限于:表单、URL参数、URLPath以及JSON等。axum为我们提供了这些获取用户输入的支持。获取 Path 参数Path 参数,又称为“路径参数”,它既可以实现参数的传递,又对SEO友好。什么是 Path 参数假设有以......
  • 【python爬虫】80页md笔记,0基础到scrapy项目高手,第(3)篇,requests网络请求模块详解
    本文主要学习一下关于爬虫的相关前置知识和一些理论性的知识,通过本文我们能够知道什么是爬虫,都有那些分类,爬虫能干什么等,同时还会站在爬虫的角度复习一下http协议。完整版笔记直接地址:请移步这里共8章,37子模块,总计56668字requests模块本阶段本文主要学习requests这......