Android网络请求(HTTP)

Android【网络请求过程(Http网络请求方法,HttpURLConnection,JSON)】 网络请求过程(从网上获取图片与文字) 阅读详情

整体思路从该博客中学习。


这里我们只从HTTP协议请求网络数据时,学习相关东西。

在HTTP请求时,在Android支持的两大类HttpURLConnection和HttpClient来请求HTTP数据,但是在Android6.0直接删除了HttpClient库。然而在使用HttpURLConnection中相对复杂,所以之后的第三方网络请求框架都是从这两个库中得来的。

AndroidStudio中要使用HttpClient需要添加如下代码在app的build.gradle中:

Android{

useLibrary 'org.apache.http.legacy'

    }

编译后就可以使用HttpClient类了。

1.HttpClient


	HttpClient httpCient = new DefaultHttpClient();
首先是初始化,这种方式就是用默认的设置,当然,你也可以自己设置请求时间等。
	HttpParams mDefaultHttpParams = new BasicHttpParams();
        HttpConnectionParams.setConnectionTimeout(mDefaultHttpParams, 15000);
        // 设置请求超时
        HttpConnectionParams.setTcpNoDelay(mDefaultHttpParams, true);
        HttpProtocolParams.setVersion(mDefaultHttpParams, HttpVersion.HTTP_1_1);
        HttpProtocolParams.setContentCharset(mDefaultHttpParams, HTTP.UTF_8);
        // 持续握手
        HttpProtocolParams.setUseExpectContinue(mDefaultHttpParams, true);
        
	HttpClient mHttpClient = new DefaultHttpClient(mDefaultHttpParams);


这里我们自己设置了连接时间,请求时间等。

这是我们的主过程:HttpPost –> HttpClient –> HttpResponse


然后我们需要确认请求方式,GET or POST

        HttpGet mHttpGet = new HttpGet(url);
        HttpPost mHttpPost = new HttpPost(url);

你也可以在此添加需要的相应头。


对于我们要传入Json数据时,可以使用StringEntity类。存入json字符串和他的编码格式就行了。

	StringEntity entity = new StringEntity("json", "utf-8");
        mHttpPost.setEntity(entity);
当然该会有list集合作为参数传递:

        List<NameValuePair> postParams = new ArrayList<>();
        postParams.add(new BasicNameValuePair("userName", "123"));
        postParams.add(new BasicNameValuePair("userpw", "456"));
        mHttpPost.setEntity(new UrlEncodedFormEntity(postParams));
以上就是对相应参数传递的方法。

最后就是请求网络数据,并接收返回值:

        HttpResponse mHttpResponse = mHttpClient.execute(mHttpGet);
        if (mHttpResponse.getStatusLine().getStatusCode() == 200) {
            HttpEntity mEntity = mHttpResponse.getEntity();
            
        }
所有的数据都在mEntity中。

2.HttpURLConnection

同上,我们首先要初始化连接参数:

然后是确认我们是POST or GET请求方式:

            URL mUrl = new URL(url);
            mHttpURLConnection = (HttpURLConnection) mUrl.openConnection();
            mHttpURLConnection.setConnectTimeout(15000);
            mHttpURLConnection.setReadTimeout(15000);
            mHttpURLConnection.setRequestMethod("GET");
            mHttpURLConnection.setRequestMethod("POST");
	    mHttpURLConnection.connect();

在传参时可以用其getOutputStream()方法来写入参数

在读取数据时,我们可以使用流的方式读取getInputStream()方法读取数据

在结束之后,一定要关闭所以的流和连接。


用scons编译STM32F103工程 想用vscode来实现代码的编辑与调试代码,原先这个工程是用STM32CUBEIDE建立的,参照STM32CUBEIDE的编译过程,编写了下面的scons脚本,scons是初次了解,既然是python脚本,那么会什么就怎么写吧。 import os import sys import glob cross_compiler_prefix = 'arm-none-eabi-' CC = cross_compiler_prefix+'gcc' CXX = cross_compiler_prefix+'g+ 阅读详情

相关推荐

robot framework循环读取excel表操作

robot framework循环读取excel表操作 1、安装excellibrary,注意python3.7版本,需安装:robotframework-excel,robotframework-excellibrary-xwfintech 注意:网上有很多excel处理的,都是基于python2.7的,还有一些对python3以上都是修改包的方式,其实都不需要,在pip官网上有python3以上的excellibrary,名称是robotframework-excellib 2.0.0,但是该包关键字不

余墨的博客 1321

如何利用JMeter录制HTTP请求做接口测试

软件质量保障 专注测试圈,自动化测试、测试平台开发、测试新技术、大厂测试岗面经分享, 可以帮忙内推BATJ等大厂!欢迎加VX沟通交流: ISTE1024 今天给大家介绍利用JMeter录制手机APP和PC端web HTTP请求做接口性能测试的方法,文章有点长,希望对大家的工作有一定的帮助。 ​ 一、JMeter录制手机APP HTTP请求 1.PC端配置:启动JMeter,测试计划>Threads>线程组,添加一个线程组(APP性能测试) 2.添加监听器>...

所寫即所思|一个阿里质量人对测试的所感所悟。 8765

手机Camera硬件电路设计:从电源管理到信号完整性的实战解析

本文深入解析了手机Camera硬件电路设计的核心挑战与实战经验,重点聚焦于电源管理与信号完整性两大基石。文章详细阐述了AVDD、DVDD、IOVDD和AFVDD四路电源的差异化设计要点与噪声控制策略,并剖析了MIPI等高速信号通道的完整性设计原则,为硬件工程师提供了从理论到PCB布局布线的完整实战指南。

weixin_28308325的博客 255

android 实现http请求

一、HttpClinet方式 1、HTTP GET 示例: [java] view plaincopy public class TestHttpGetMethod{         public void get(){             BufferedReader in = null;                  try{

punk.liu的专栏 399

机器学习教程 之 半监督学习 Co-training 协同训练 (论文、算法、数据集、代码)

这篇博客介绍的是一篇用于半监督分类问题的方法: 协同训练 Co-training, A. Blum and T. Mitchell, “Combining labeled and unlabeled data with co-training,” in Proc. of the 11th Annual Conf. on Computational Learning Theory, 1998.,这算是半监督领域里面始祖级的论文了,是1998年两位CMU大佬提出的方法。 之前还写过一篇关于Tri-trainin

冯良骏 的 博客 1万+

从理论到代码:手把手教你用Matlab复现MMC的HSS阻抗模型(附避坑指南)

本文详细介绍了如何使用Matlab复现MMC的HSS阻抗模型,涵盖谐波状态空间(HSS)理论、代码实现步骤及常见问题解决方案。通过谐波线性化和序阻抗建模技术,帮助工程师准确分析MMC的阻抗特性,并提供避坑指南以解决矩阵维度错误、收敛性问题和频域转换陷阱等难点。

weixin_42561040的博客 358

2024年安卓最全Android Http请求方法汇总,2024年最新开发岗面试自我介绍怎么说

写到这里也结束了,在文章最后放上一个小小的福利,以下为小编自己在学习过程中整理出的一个学习思路及方向,从事互联网开发,最主要的是要学好技术,而学习技术是一条慢长而艰苦的道路,不能靠一时激情,也不是熬几天几夜就能学好的,必须养成平时努力学习的习惯,更加需要准确的学习方向达到有效的学习效果。网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。需要这份系统化学习资料的朋友,可以戳这里获取一个人可以走的很快,但一群人才能走的更远!

2301_82242990的博客 1247

企业微信/飞书/钉钉扫码连WiFi保姆级教程(附访客授权技巧)

本文提供了一份企业微信、飞书、钉钉扫码连接WiFi的实战部署教程。通过集成标准Radius协议与OAuth 2.0,企业可实现基于身份的无密码网络认证,并详细介绍了访客授权、权限分级等精细化管理技巧,有效提升无线网络的安全性与员工体验。

t4y5u6i7o的博客 1196

Android Http请求方法汇总,含泪狂刷Android基础面试118题

2URLDecoder.decode("测试","utf-8"); 2.使用Apache的HttpClient访问网络资源 (1)get请求 public String executeGet() { String result = null; BufferedReader reader = null; try { HttpClient client = new DefaultHttpClient(); HttpGet request = new HttpGet(); request.setURI(new U

m0_63737692的博客 1150

爬虫Incapsula reese84加密案例:Etihad航空(纯算法)

爬虫Incapsula reese84加密案例:Etihad航空,本文就不再讲解如何找加密参数、定位加密参数,以及分析加密的一个过程。就直接从扣算法开始,扣算法前先看之前讲解的加密函数生成的过程,文章会一个函数一个函数的讲解扣算法。fiddler根据规则替换本地文件。调试过程中遇到部分环境不一样是正常的,具体还要根据自己调试的js为准,就像之前补环境时是有二十一个循环,这次扣算法多出一个循环,不过大部分环境是一样的第一个函数:通过document.addEventListener添加了很多事件。

老衲爱洗头的博客 1994

【乐企-工具篇】生成发票左上角二维码

【代码】【乐企-业务篇】生成发票左上角二维码。

九七的博客 708

安卓网络请求框架android-async-http详解与优化

网络请求是移动应用开发中的核心技术,涉及数据传输、异步处理和性能优化等关键环节。android-async-http作为经典的Android异步网络框架,通过封装Apache HttpClient提供了简洁的API设计,解决了原生HttpURLConnection的复杂性问题。其核心价值在于自动线程切换机制和内置请求参数处理,大幅提升了文件上传、表单提交等场景的开发效率。在工程实践中,该框架适用于维护历史项目或Android 4.x设备优化,通过连接池调优、响应缓存等技巧可显著提升性能。随着OkHttp、R

weixin_30902251的博客 420

【雕爷学编程】一款功能强大、易于使用、适用范围广泛的嵌入式Python解释器:MicroPython

1、语法方面:Micropython与Python语法基本相同,但是由于Micropython是专门为嵌入式设备设计的,因此它对标准Python的功能进行了精简和优化,去掉了一些不必要的功能,同时增加了一些嵌入式系统特有的功能。3、库方面:Micropython与Python完全不同的是,它的标准库并不完全与Python的标准库一致,特别是一些底层库和硬件相关的库。5、丰富的库和工具支持:MicroPython有丰富的库和工具支持,如GPIO控制、网络连接、传感器数据采集等,可满足各种应用需求。

雕爷学编程 5196

Android之网络请求1————HTTP协议

Android之网络请求1————HTTP协议

冰炭不投day的博客 2599

lwip-2.0.3

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

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

安卓网络请求框架android-async-http详解与优化实践

网络请求是移动应用开发的核心技术之一,其实现原理主要基于HTTP协议和异步线程模型。在Android平台上,android-async-http作为经典异步网络库,采用回调机制和自动线程管理,有效解决了主线程阻塞问题。该框架通过轻量级设计(相比Retrofit+OkHttp组合包体积小30%)和内置重试机制,特别适合弱网环境和资源受限场景。在电商、社交等高频网络交互应用中,合理使用该框架能显著提升请求成功率(实践案例显示下单成功率提升15%)。虽然现代框架如OkHttp提供了更完善的拦截器机制,但理解and

weixin_34327223的博客 935

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

安卓网络请求封装--Android-Async-Http

最近项目需要封装统一的网络请求,因为后台数据的返回不确定性,决定进行最基础的封装,统一返回String,gson解析自行处理。采用Android-Async-Http框架。 碰到的问题有:1、body要求为json而非表单形式,还有json+参数的请求体。2、Android-Async-Http框架未知原因闪退。 代码如下: public class AsyHttpManger {

zhan10001的博客 578

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

android post请求_Android HTTP 网络请求

一、网络层级协议1.1 OSI 七层网络模型标准的 OSI 网络模型包含物理层、数据链路层、网络层、传输层、会话层、表示层、应用层共七层网络结构:| 层级 | 名称 | | :-: | :-: | | 7 | 应用层 | | 6 | 表示层 | | 5 | 会话层 | | 4 | 传输层 | | 3 | 网络层 | | 2 | 数据链路层 | | 1 | 物理层 | 1.2 TCP/IP...

weixin_35785014的博客 1746

http请求过程 Android,android HTTP网络请求回顾

1.HTTP协议了解http是一种应用层的协议,底层通过TCP来进行可靠的数据传输。HTTP是基于TCP的应用层协议,它在更高的层次封装了TCP的使用细节,使网络请求更加易用,TCP连接是因特网基于流的一种可靠连接,它为HTTP提供了一条可靠的比特传输管道。从TCP连接一端填入的字节会从另一端以原有的顺序、正确的传送过来。HTTP的7种请求方式GETPOSTDELETEPUTHEADTRACEPO...

weixin_39978350的博客 627

Android网络请求库——android-async-http

在iOS开发中有大名鼎鼎的ASIHttpRequest库,用来处理网络请求操作,今天要介绍的是一个在Android上同样强大的网络请求库android-async-http,目前非常火的应用Instagram和Pinterest的Android版就是用的这个网络请求库。这个网络请求库是基于Apache HttpClient库之上的一个异步网络请求处理库,网络处理均基于Android的非UI线程,通

Ryan's zone 2万+

使用android-async-http来封装Android网络请求框架

目前Android开发中使用的比较多的网络框架有android-async-http,Volley,OkHttp等,Retrofit2.0就是基于OkHttp的,各大网络框架都有各自的优点,今天讲的android-async-http的优点就是api调用简单,学习成本低,jar包的体积小等。  android-async-http是一个基于Apache的HttpClient的异步的Android请求框架

做更好的自己 9337

Android http网络请求框架搭建

android上网络请求大致分为使用socket和http,普通应用大多使用http或者https,今天主要介绍http,实现目标通过使用http搭建一套简单的Android网络请求框架。 待续。。。

xiangyunwan的专栏 1965

Android开发,http网络请求网页基本操作

http网络请求基础操作 在安卓项目开发中,很多时候需要给客户端传送服务器提供的文字,图片,音频,视频,网页等,也需要将用户的操作反馈给服务器,这些就涉及了网络传输协议的知识。 http的常用简单请求方式为 GET和POST, 较为高级的可以传输大部分类型的数据,由Content-Type进行标记。 本文,介绍一个简单的,将百度网首页请求获取至客户端界面,本人也是个 萌新小白,如有错误,请指正,非常感谢。 url内容的获取一般由以下步骤: 1.实例化URL URL url = new URL("http:/

qq_41904106的博客 2891

安卓网络请求框架android-async-http的使用

在android studio中使用android-async-http框架时发现报错,错误是:org.apache.http.Header类找不到了。后来发现是Http Client在android 6.0 被移除了。官方文档的解决方案是: If your app is using this client and targets Android 2.3 (API level 9)...

alex_wen2014的博客 193

Android-网络编程-创建HTTP请求

一、所谓的网络编程就是在手机端使用TTP协议和服务器进行网络交互,并对服务器返回的数据进行解析。 二、调用百度网址 <?xml version="1.0" encoding="utf-8"?> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent"...

求职之路 483

Http与Android网络请求的几种协议

HTTP(HyperText Transfer Protocol)是一套计算机通过网络进行通信的规则。计算机专家设计出HTTP,使HTTP客户(如Web浏览器)能够从HTTP服务器(Web服务器)请求信息和服务,HTTP目前协议的版本是1.1.HTTP是一种无状态的协议,无状态是指Web浏览器和Web服务器之间不需要建立持久的连接,这意味着当一个客户端向服务器端发出请求,然后Web服务器返回响应(

ap____lLix1的博客 1232

Android9.0默认网络请求使用https,http怎么办?看过来!!!

在使用安卓8.0期间,测试手机提示更新至安卓9.0,原以为差别不大,就更新了,结果导致app获取不到后台数据。 解决方案: 经查阅资料,原来是Android9.0加入了所有的网络请求都需要使用https,然而我的是http,最终加入相应的配置才能完成http的请求。 在AndroidManifest.xml加入以下代码得以解决。 android:networkSecurityConfig="@xm...

勤快的小蚂蚁的博客 3319
上一篇: android蓝牙模块
下一篇: Volley(一)
羊羊爱代码
博客等级 码龄11年 8粉丝 28原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值