android学习---使用HttpURLConnection

Android 中使用HttpURLConnection进行网络请求详解 前言:下面使用HttpURLConnection进行POST的请求,GET请求不需要传递参数自然你也就会使用了。 一、创建UrlConnManager类,提供getHttpURLConnection()方法,配置默认参数,并返回HttpURLConnection的实例。 之后再写一个postParams方法,组织一下请求参数 并将请求参数写入输出流。 代码如下: public class UrlConnManager { //配置默认参数,返回HttpURLConnection的实例 pub 阅读详情

一、概述

在使用Http协议访问网络时,对于HTTP协议,我们只需要了解他的工作原理就OK了。
HTTP工作原理:客户端向服务器发出一条HTTP请求,服务器收到请求之后会返回一些数据给客户端,然后客户端再对这些数据进行解析和处理就可以了。

Http常用的请求方式
1.get方式属于明文传参,在地址栏可以看到参数,调用简单,不安全。(表示希望从服务器那里获取数据)
2.post方式输入暗文传参,在地址栏参数不可见,调用稍复杂,安全。(表示希望提交数据给服务器)

二、HttpURLConnection的使用

如何使用HttpURLConnection发送GET请求的步骤
1.创建URL对象2.通过URL对象调用openConnection()方法获得HttpURLConnection对象
  URL url=new URL("https://www.baidu.com");
  HttpURLConnection connection= (HttpURLConnection) url.openConnection();
3.HttpURLConnection对象设置其他连接属性
 connection.setRequestMethod("GET");//设置HTTP请求方式为GET
 connection.setConnectTimeout(8000);//设置连接超时的毫秒数
 connection.setReadTimeout(8000);//设置读取超时的毫秒数
4.HttpURLConnection对象调用getInputStream()方法向服务器发送http请求 并获取到服务器返回的输入流
 InputStream in=connection.getInputStream();
                    //下面对获取到的输入流进行读取
                    BufferedReader reader=new BufferedReader(new InputStreamReader(in));
                    StringBuilder response=new StringBuilder();
                    String line;
                    while ((line=reader.readLine())!=null){
                        response.append(line);
                    }
5.读取输入流,转换成String字符串
注:不要忘记加权限
<uses-permission android:name="android.permission.INTERNET"/>

发送post请求时,只需要将HTTP请求的方式改成POST,并在获取输入流之前把要提交的数据写出即可。
注意每条数据都要以键值对的形式存在,数据与数据之间用“&”符号隔开,比如向服务器提交用户名和密码
connection.setRequestMethod("POST");
DataOutputStream out=new DataOutputStream(connection.getOutputStream());
out.writeBytes("username=admin&password=123456");



下面写一个实例,点击一个按钮之后在TextView中显示请求百度返回的数据
编写xml代码
<?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:layout_height="match_parent"
    android:orientation="vertical"
    tools:context="com.example.lk.networktest.MainActivity">

    <Button
        android:id="@+id/send_request"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Send Request" />

    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <TextView
            android:id="@+id/response_text"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />
    </ScrollView>

</LinearLayout>

编写activity中的代码
public class MainActivity extends AppCompatActivity implements View.OnClickListener{
 TextView responseText;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Button sendRequest= (Button) findViewById(R.id.send_request);
        responseText= (TextView) findViewById(R.id.response_text);
        sendRequest.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        if(v.getId()==R.id.send_request){
            sendRequestWithHttpURLConnection();
        }

    }

    private void sendRequestWithHttpURLConnection() {
        new Thread(new Runnable() {
            @Override
            public void run() {
                HttpURLConnection connection=null;
                BufferedReader reader=null;
                try {
                    URL url=new URL("https://www.baidu.com");
                    connection= (HttpURLConnection) url.openConnection();
                    connection.setRequestMethod("GET");//设置HTTP请求方式为GET
                    connection.setConnectTimeout(8000);//设置连接超时的毫秒数
                    connection.setReadTimeout(8000);//设置读取超时的毫秒数
                    InputStream in=connection.getInputStream();
                    //下面对获取到的输入流进行读取
                    reader=new BufferedReader(new InputStreamReader(in));

                    StringBuilder response=new StringBuilder();
                    String line;
                    while ((line=reader.readLine())!=null){
                        response.append(line);
                    }
                    showResponse(response.toString());

                } catch (MalformedURLException e) {
                    e.printStackTrace();
                } catch (IOException e) {
                    e.printStackTrace();
                }finally {
                    if(reader!=null){
                        try {
                            reader.close();
                        } catch (IOException e) {
                            e.printStackTrace();
                        }
                    }
                    if (connection!=null){
                        connection.disconnect();
                    }
                }
            }
        }).start();
    }

    private void showResponse(final String s) {
        runOnUiThread(new Runnable() {
            @Override
            public void run() {
                //在这里进行UI操作,将结果显示到界面上
                responseText.setText(s);

            }
        });
    }
}
3.声明权限
<uses-permission android:name="android.permission.INTERNET"/>







海外跨境电商商城源码-进出口电商平台网站-多语言多商户平台 我们的海外跨境电商系统源码还包括各种功能模块,如用户管理、商品管理、订单管理等。支付管理:与主流支付平台(如Stripe、PayPal等)的集成,支持多种支付方式;订单管理:创建订单、支付订单、取消订单等操作,以及订单状态查询和历史记录;购物车管理:添加商品到购物车、查看购物车、修改购物车中的商品数量等操作;商品管理:商品信息录入、编辑、删除等操作,以及商品分类和搜索功能。客服管理:在线咨询、投诉处理等功能,提供更好的用户服务。用户管理:注册、登录、忘记密码、个人资料。# 检查电子邮件地址是否有效。 阅读详情

相关推荐

SAP生产订单成本‘还原’实战:从标准成本到实际费用,一步步拆解差异来源(附物料分类账提示)

本文深入解析SAP生产订单成本差异分析的全过程,从标准成本到实际费用的追踪方法,揭示差异根源的六维分析法。特别强调物料分类账(CKMLCP)在成本还原中的关键作用,帮助财务人员精准定位价格差异、用量差异等问题,提升制造业成本管理的效率和准确性。

weixin_28705087的博客 532

Android中HttpURLConnection使用详解

认识Http协议Android中发送http网络请求是很常见的,要有GET请求和POST请求。一个完整的http请求需要经历两个过程:客户端发送请求到服务器,然后服务器将结果返回给客户端,如下图所示: 客户端->服务器 客户端向服务器发送请求主要包含以下信息:请求的Url地址、请求头以及可选的请求体,打开百度首页,客户端向服务器发送的信息如下所示:请求URL(Request URL) 上图中的R

孙群 7万+

Multisim仿真入门:单相半波可控整流电路从搭建到波形分析(附避坑指南)

本文为电力电子技术初学者提供了一份详细的Multisim仿真指南,手把手教你从零搭建单相半波可控整流电路。通过对比纯电阻、阻感负载及加入续流二极管后的波形变化,直观理解晶闸管触发、电感续流等核心原理,并附有实用的参数设置与常见问题避坑指南,帮助你将抽象理论转化为可视化的工程实践。

weixin_29208077的博客 343

Android使用HttpURLConnection访问网络

Android使用HttpURLConnection访问网络 一、管理网络状态 使用网络进行数据通信前,需要先获取网络状态。 使用ConnectivityManager获取网络状态步骤: 1.获取ConnectivityManager对象 2.获取当前活动的网络NetworkInfo对象 3.判断当前网络状态是否为连接状态 4.在AndroidMainfest.xml中添加访问当前网络状态权限 //使用ConnectivityManager检查网络状态步骤 private boolean check

m0_66309026的博客 8400

Amesim与Simulink联合仿真:S-Function接口配置与实战避坑指南

本文详细介绍了Amesim与Simulink联合仿真中S-Function接口的配置方法与实战避坑指南。从环境搭建、编译器配置到S-Function接口实战,逐步解析关键步骤与常见问题解决方案,帮助工程师高效实现多领域系统仿真,特别适合汽车、航空航天等复杂系统建模场景。

weixin_29173777的博客 344

从零到一:Gromacs伞形采样的实战避坑指南

本文详细介绍了Gromacs伞形采样技术的实战应用与避坑指南,涵盖核心原理、环境准备、参数设置、数据分析及性能优化等关键环节。特别针对蛋白质-配体结合自由能计算等典型应用场景,提供了弹簧常数设置、采样窗口间距等实用参数建议,帮助研究人员高效完成分子动力学模拟。

weixin_29243279的博客 512

Android之使用HttpURLConnection进行网络访问

一、概述在Android 上发送HTTP 请求的方式一般有两种:HttpURLConnection 和HttpClient。因为在Android 5.0之后,HttpClient被HttpURLConnecetion替代,后来在Android 6.0完全被舍弃,所以本文重点讲解HttpURLConnecetion。二、HttpURLConnecetion的使用步骤(1)首先需要获取到HttpURLC

wei_zhi的博客 6013

YOLOv13改进策略【Neck】| CVPR2024 LGAG:大核分组注意力门模块,3×3分组卷积与注意力协同的特征精准融合

本文记录的是利用LGAG 模块改进 YOLOv13 的颈部融合部分。(Large-kernel Grouped Attention Gate)通过3×3分组卷积与注意力机制结合,引导解码器处理特征与跳接特征的精准融合。本文利用模块,通过3×3分组卷积扩大感受野以捕捉更广泛局部空间上下文,同时结合注意力机制生成自适应注意力系数,对YOLOv13中关键目标特征赋予高激活值、抑制冗余背景特征,在特征融合阶段实现全局语义与局部细节的高效结合,减少计算成本的同时提升特征表达能力,增强模型对复杂场景下目标的检测精度与效

Limiiiing的博客 103

Android学习之使用HTTP协议访问网络之HttpURLConnection

#转自第一行代码—郭霖 首先new出一个URL对象,传入目标对象的网络地址,再new一个HttpURLConnection的实例,然后调用URL的openConnection()方法即可。如下代码所示: URL url = new URL("https://www.baidu.com/"); HttpURLConnection connection = null; connection = (HttpURLConnection) url.openConnection(); 在得到HttpURLCon

weixin_37879993的博客 227

基于STM32的IMU惯性/姿态解算与多参数上位机可视化实现_资料编号38

本项目实现基于STM32F103C8T6标准库,对姿态/惯性(IMU)传感器姿态解算,通过USB-TTL转串口模块将姿态角/欧拉角、加速度、角速度、磁场、气压、海拔高度、磁力计温度、气压计温度等数据显示在PC端上位机,系统采用可充电锂电池供电。

嵌入式阿齐Archie 1万+

DDR5中的On-Die Termination(ODT)详解:电阻值支持及其背后的秘密

DDR5支持多档ODT电阻值,范围从40Ω到480Ω,均基于240Ω标准参考电阻RZQR_{ZQ}RZQ​。不同电阻档位对应不同的信号负载和功耗需求。校准电压点关键,常用0.8×VDD进行精准调校。CA信号间ODT匹配必须严格控制,保证命令总线稳定。选择合适的ODT值是高速内存设计中不可忽视的细节。

weixin_43199439的博客 2096

Android学习之HttpURLConnection对象的使用

使用HttpURLConnection对象发送数据到服务器和从服务器读取数据开始之前先引用官方原话: Android 6.0 release removes support for the Apache HTTP client. If your app is using this client and targets Android 2.3 (API level 9) or higher, us

一大三千的博客 1013

用ChatGPT 5.5掌握SCI的4个实操润色技巧,论文质量极速提升!(附提示词)

ChatGPT 5.5的发布,在学术写作中的应用变得更加精准和安全,通过正确的使用方法,不仅可以改善语法与表达,让论文达到SCI发表水准,还能最大程度保留作者原意,将AIGC检测率控制在低风险区间。可以帮大家省下大量纠结语法、梳理逻辑的时间,在保证润色质量的同时,兼顾AIGC检测的合规要求,为论文投稿成功率提供实实在在的提升。通过智能调整语序、优化用词和句式结构,该方法能够在保留学术质感的同时,使文章表达更自然、贴近人工撰写的风格,从而避免文字过于程式化,提升论文整体可读性和表达的个性化特征。

智能AI让学术科研更容易 64

android学习笔记 之 HttpUrlconnection的使用

在Android上发送HTTP请求的常用的有两种方式,HttpURLConnection和HttpClient,本次学习HttpURLConnection的使用  1. new 一个URL对象,并传入网络地址,然后调用openConnection()方法,如下 URL url = new URL("http://www.baidu.com"); con

我叫王哈哈 506

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Android学习之使用HttpURLConnection下载文件

package com.example.administrator.myapplication; ​ import android.os.Bundle; import android.os.Environment; import android.support.v7.app.ActionBarActivity; import android.view.View; import android.wi

linzhiyong的专栏 1万+

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Android学习之使用HttpURLConnection上传单个文件

package com.example.youyige.util; import java.io.DataOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputS

linzhiyong的专栏 3953

IEM模型,地表粗糙度模拟

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

Android学习之使用HttpURLConnection上传单多个文件

private void upload(String[] uploadFiles, String actionUrl) { String end = "/r/n"; String twoHyphens = "--"; String boundary = "*****"; try { URL url = new

linzhiyong的专栏 3436

Android学习笔记9--HttpURLConnection使用

HttpURLConnection的使用 这个是用来连接网络发送或者接收数据的时候使用的API 1.首先定义一个URL对象接收路径 2.获得HttpURLConnection的实例 3.设置发送GET请求 4.设置返回超时的方法 5.获取返回值 String path = et_path.getTe

analysefang的博客 382

学习笔记:Android中使用网络技术的方法(webview、httpurlconnection、okhttp)

目录 一、使用HttpUrlConnection访问网络 1、发送GET请求 tips: 如何处理302重定向 2、发送POST请求 二、OkHttp的使用方法 三、WebView的使用方法   一、使用HttpUrlConnection访问网络 在Android 6.0以前,Android上发送HTTP请求一般有两种方式,HttpUrlConnection和HttpClient...

prance90的博客 1050

Android学习笔记--HttpURLConnection和HttpClient的使用

HttpURLConnection是Android发送Http请求的一种String address = ""; Url url = new Url(address); //获得HttpURLConnection实例 HttpURLConnection conn = (HttpURLConnection)url.openConnection(); //设置请求方法 conn.setRequestM

holly__的专栏 470

Http学习之使用HttpURLConnection发送post和get请求 android

最常用的Http请求无非是get和post,get请求可以获取静态页面,也可以把参数放在URL字串后面,传递给servlet,post与get的不同之处在于post的参数不是放在URL字串里面,而是放在http请求的正文内。 在Java中可以使用HttpURLConnection发起这两种请求,了解此类,对于了解soap,和编写servlet的自动测试代码都有很大的帮助。 下面的代码简单描述了

幸福的小金火 544

Android学习之使用HttpURLConnection同时上传文本和多个文件

原理是: 分析文件上传的数据格式,然后根据格式构造相应的发送给服务器的字符串。格式如下:这里的httppost123是我自己构造的字符串,可以是其他任何的字符串 ----------httppost123 (\r\n) Content-Disposition: form-data; name="img"; filename="t.txt" (\r\n) Conten

linzhiyong的专栏 1588

Android学习-网络技术-使用HTTP协议进行网络交互、HttpURLConnection与OkHttp、XML与JSON的解析、使用java回调机制将服务器响应的数据进行返回

Android中最常使用到的网络技术:在手机端使用HTTP写一和服务器端进行网络交互,并对服务器返回的数据进行解析。 WebView 可以在自己的应用程序里嵌入一个浏览器,来展示网页。 例子: 首先使用findViewById方法获取到了WebView的实例,然后调用WebView的getSettings方法可以去设置一些浏览器的属性,这里只调用了setJavaScriptEnabled方法来让WebView支持javascript脚本。 接下来调用了WebView的setwebviewclient方法

vbbbbbbbbbbb的博客 687

Android学习笔记--使用HttpURLConnection实现网络下载效果,附带进度条显示

下面我就直接上代码了,因为代码中我已经写了非常详细的注释 1 package com.wuxianedu.httpdemo; 2 3 import android.app.ProgressDialog; 4 import android.content.Intent; 5 import android.net.Uri; 6 import android.o...

weixin_33969116的博客 348

android httpurlconnection https,Android网络技术HttpURLConnection详解

介绍早些时候,Android 上发送 HTTP 请求一般有 2 种方式:HttpURLConnection 和 HttpClient。不过由于 HttpClient 存在 API 数量过多、扩展困难等缺点,Android 团队越来越不建议我们使用这种方式。在 Android 6.0 系统中,HttpClient 的功能被完全移除了。因此,在这里我们只简单介绍HttpURLConnection 的使...

weixin_39769675的博客 483

Android HttpURLconnection使用POST请求参数是json

对于很多初中级Android工程师而言,想要提升技能,往往是自己摸索成长。而不成体系的学习效果低效漫长且无助。时间久了,付出巨大的时间成本和努力,没有看到应有的效果,会气馁是再正常不过的。所以学习一定要找到最适合自己的方式,有一个思路方法,不然不止浪费时间,更可能把未来发展都一起耽误了。如果你是卡在缺少学习资源的瓶颈上,那么刚刚好我能帮到你。以上知识笔记全部免费分享,如有需要获取知识笔记的朋友,可以点击我的GitHub免费领取。都一起耽误了。如果你是卡在缺少学习资源的瓶颈上,那么刚刚好我能帮到你。

weixin_58134620的博客 511
上一篇: android学习---使用多媒体类VideoView
下一篇: android学习---使用OkHttp
liu_keke
博客等级 码龄11年 3粉丝 25原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值