HttpURLConnection学习

介绍

  HttpURLConnection类是位于java.net包下继承了URLConnection类的一个抽象类,每个 HttpURLConnection 实例都用于发出单个请求。

URL

  HttpURLConnection的使用需要依赖URL类,URL类位于java.net包下,有很多种构造方法。
在这里插入图片描述

HttpURLConnection

设置网络权限
在AndroidManifest.xml文件的添加<manifest>标签下<uses-permission android:name="android.permission.INTERNET" />
允许通过HTTP访问网络资源
通过修改 AndroidManifest.xml 文件来临时允许明文 HTTP 流量。
可以测试http://www.httpbin.org/get这个网站
测百度https://www.baidu.com/

<applicationandroid:usesCleartextTraffic="true"... >...
</application>

GET 请求

Button GET = findViewById(R.id.button);
GET.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {new Thread(new Runnable() {@Overridepublic void run() {try {// 指定urlString url_baidu = "https://www.baidu.com/";// 创建url对象URL url = new URL(url_baidu);// 创建连接对象HttpURLConnection connection = (HttpURLConnection) url.openConnection();// 设置请求方式connection.setRequestMethod("GET");// 建立连接,不发送数据connection.connect();// 获取响应码int responseCode = connection.getResponseCode();if(responseCode == HttpURLConnection.HTTP_OK) {InputStream inputStream = connection.getInputStream();BufferedReader in = new BufferedReader(new InputStreamReader(inputStream));String inputLine;StringBuilder content = new StringBuilder();while ((inputLine = in.readLine()) != null) {content.append(inputLine);}// 关闭流in.close();// 更新UI,必须在主线程runOnUiThread(new Runnable() {@Overridepublic void run() {Log.d("Response:", content.toString());// 你也可以用Toast显示结果// Toast.makeText(getApplicationContext(), content.toString(), Toast.LENGTH_LONG).show();}});} else {Log.d("Response:", "Request failed with code: " + responseCode);}connection.disconnect();} catch (Exception e) {// 记录异常Log.e("Error", "Exception: " + e.getMessage(), e);}}}).start();}
});

POST请求

        Button POST = findViewById(R.id.button2);POST.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {new Thread(new Runnable() {@Overridepublic void run() {try {String url_example = "https://www.httpbin.org/forms/post";URL url = new URL(url_example);HttpURLConnection connection = (HttpURLConnection) url.openConnection();connection.setRequestMethod("POST");connection.setRequestProperty("Content-Type","application/x-www-form-urlencoded");connection.setDoOutput(true);connection.setDoInput(true);String postData = "comments=555&custemail=111@111&custname=111&custtel=111&delivery=&size=small&topping=cheese&topping=onion";OutputStream outputStream = connection.getOutputStream();outputStream.write(postData.getBytes(StandardCharsets.UTF_8));outputStream.flush();outputStream.close();int responseCode = connection.getResponseCode();if(responseCode==HttpURLConnection.HTTP_OK){InputStream inputStream = connection.getInputStream();BufferedReader in = new BufferedReader(new InputStreamReader(inputStream));String inputLine;StringBuilder content = new StringBuilder();while ((inputLine=in.readLine())!=null){content.append(inputLine);}in.close();Log.d("Response",content.toString());}else{Log.d("Response:","Request failed with code: " + responseCode);}connection.connect();} catch (Exception e) {throw new RuntimeException(e);}}}).start();}});

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/444983.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AI引起用人格局变动,个人如何应对这一趋势

大家好&#xff0c;我是Shelly&#xff0c;一个专注于输出AI工具和科技前沿内容的AI应用教练&#xff0c;体验过300款以上的AI应用工具。关注科技及大模型领域对社会的影响10年。关注我一起驾驭AI工具&#xff0c;拥抱AI时代的到来。 人工智能的发展带来的就业结构变革&#xf…

论文笔记:D-vlog 用于抑郁症检测的多模态数据集

整理了AAAI2022 D-vlog: Multimodal Vlog Dataset for Depression Detection 论文的阅读笔记 背景方法特征提取模型 实验数据集主实验不同模态的性能性别的影响 背景 以往关于抑郁症检测的工作大多集中在实验室环境下对抑郁症个体的检测&#xff0c;难以在实践中推广。本文提出…

图解C#高级教程(五):枚举器和迭代器

本章主要介绍 C# 当中枚举器、可枚举类型以及迭代器相关的知识。 文章目录 1. 枚举器和可枚举类型2. IEnumerator 和 IEnumerable 接口2.1 IEnumerator 接口2.2 IEnumerable 接口 3. 泛型枚举接口4. 迭代器4.1 使用迭代器创建枚举器4.2 使用迭代器创建可枚举类4.3 迭代器作为属…

消峰限流有哪几种方式?

消峰限流的方式 业务视角 验证码回答问题环节 技术视角 消息队列异步化用户请求 限流&#xff0c;对流量进行层层过滤 nginx 层限流&#xff0c; 一是控制速率 limit_req 漏桶算法 limit_req_zone $binary_remote_addr zonemylimit:10m rate2r/s; server { location / { lim…

leetcode链表(三)-反转链表

题目 . - 力扣&#xff08;LeetCode&#xff09; 给你单链表的头节点 head &#xff0c;请你反转链表&#xff0c;并返回反转后的链表。 思路 首先定义一个cur指针&#xff0c;指向头结点&#xff0c;再定义一个pre指针&#xff0c;初始化为None。 然后就要开始反转了&…

其他浏览器可以联网,但edge不能联网

问题描述&#xff1a; 今早edge无法上网&#xff0c;检测网络连接正常&#xff0c;而且其他chrome&#xff0c;Firefox和360浏览器都可以上网。 解决方案&#xff1a; 注意&#xff1a;为防止是代理问题&#xff0c;可以在扩展中禁用后再试试 如果没有代理或者禁用代理也不…

基于SpringBoot摄影师分享交流社区【附源码】

基于SpringBoot摄影师分享交流社区 效果如下&#xff1a; 系统首页界面 用户注册界面 作品信息页面 公告资讯页面 管理员登录页面 管理员功能界面 作品类别界面 作品信息界面 研究背景 随着互联网技术的快速发展&#xff0c;数字摄影技术的普及使得越来越多的摄影爱好者渴望…

Python、R语言Lasso、Ridge岭回归、XGBoost分析Airbnb房屋数据:旅游市场差异、价格预测|数据分享...

全文链接&#xff1a;https://tecdat.cn/?p37839 分析师&#xff1a;Kefan Yu 在大众旅游蓬勃发展的背景下&#xff0c;乡村旅游已成为推动乡村经济、社会和文化发展的关键力量。当前&#xff0c;乡村旅游接待设施主要以招待所、小宾馆和农家乐等形式存在。然而&#xff0c;一…

企业远控私有化部署解决方案-内信互联

内信互联&#xff08;DoLink&#xff09;&#xff0c;是点量软件新推出的企业私有化远程控制系统解决方案。很多朋友对这个产品还不是很了解&#xff0c;今天点量小编就对其基础功能做一些详细说明&#xff0c;如果您想快速拥有自己的企业私有远程控制系统&#xff0c;欢迎联系…

基于SpringBoot+Vue+MySQL的企业招聘管理系统

系统展示 用户前台界面 管理员后台界面 企业后台界面 系统背景 在当今数字化转型的大潮中&#xff0c;企业对于高效、智能化的人力资源管理系统的需求日益增长。招聘作为人力资源管理的首要环节&#xff0c;其效率与效果直接影响到企业的人才储备与竞争力。传统的招聘方式不仅耗…

摩托车一键启动兼容机械钥匙点火

摩托车无钥匙一键启动 工作原理 摩托车无钥匙一键启动系统的工作原理主要依赖于RFID无线射频技术和车辆身份编码识别系统。这种技术能够通过小型化、小功率的射频天线来识别车辆的身份&#xff0c;并与遥控系统结合&#xff0c;实现双重射频系统和双重防盗保护。这意味着&…

《深度学习》【项目】OpenCV 答题卡识别 项目流程详解

目录 一、项目上半部分 1、定义展示图像函数 2、预处理 运行结果&#xff1a; 3、轮廓检测并绘制 运行结果&#xff1a; 4、排序轮廓 5、定义排序点函数 6、透视变换 1&#xff09;定义透视变换处理函数 2&#xff09;执行透视变换 运行结果&#xff1a; 7、二值化…

信息安全工程师(28)机房安全分析与防护

前言 机房安全分析与防护是一个复杂而细致的过程&#xff0c;涉及到物理安全、环境控制、电力供应、数据安全、设备管理、人员管理以及紧急预案等多个方面。 一、机房安全分析 1. 物理安全威胁 非法入侵&#xff1a;未经授权的人员可能通过门窗、通风口等进入机房&#xff0c;…

解决无法安装“vue.volar“扩展,跟vscode版本不兼容问题

问题&#xff1a;安装volar插件的时候提示跟vscode版本不兼容 解决方案 1、进入VSCode插件市场&#xff0c;搜索Vue.volar&#xff08;直达链接&#xff1a;volar下载界面&#xff09; 2、点击download Extension&#xff08;下载插件&#xff09; 3、下载.vsix文件完成后&a…

基于Opencv中的DNN模块实现图像/视频的风格迁移

一、DNN模块的介绍 1、简介 OpenCV中的DNN&#xff08;Deep Neural Network&#xff09;模块是一个功能强大的组件&#xff0c;它支持深度学习网络模型的加载和推理。虽然DNN模块不提供模型的训练功能&#xff0c;但它可以与主流的深度学习框架&#xff08;如TensorFlow、Caf…

Rope – 基于深度学习模型开源的AI换脸技术

Rope是什么 Rope是一款开源的AI换脸工具&#xff0c;基于insightface的inswapper_128模型构建&#xff0c;提供一个用户友好的图形界面。用户通过上传图片或视频&#xff0c;在几秒钟内完成换脸操作&#xff0c;效果逼真。Rope支持多种超分辨率算法&#xff0c;支持用户调整面…

深入探讨B+树索引的基本概念、工作原理以及在MySQL中的应用

文章目录 1. B树的基本概念2. B树在MySQL中的实现3. 示例代码4. 结论 在数据库管理系统中&#xff0c;索引是一种特殊的文件&#xff0c;它能够提高数据检索的速度。MySQL作为最流行的开源关系型数据库之一&#xff0c;提供了多种索引类型来满足不同的性能需求。其中&#xff0…

ARP断网攻击

ARP断网攻击 1.课前准备 kali 作为ARP攻击机&#xff0c;192.168.110.26 MAC地址&#xff1a;00:0c:29:fc:66:46 win10 作为被攻击方&#xff0c;192.168.110.12 MAC地址&#xff1a;1c:69:7a:a4:cf:92 网关&#xff08;路由器&#xff09;&#xff0c;192.168.110.1 MAC地…

[单master节点k8s部署]34.ingress 反向代理(一)

ingress是k8s中的标准API资源&#xff0c;作用是定义外部流量如何进入集群&#xff0c;并根据核心路由规则将流量转发到集群内的服务。 ingress和Istio工作栈中的virtual service都是基于service之上&#xff0c;更细致准确的一种流量规则。每一个pod对应的service是四层代理&…

ESP32接入扣子(Coze) API使用自定义智能体

使用ESP32接入Coze API实现聊天机器人的教程 本示例将使用ESP32开发板通过WiFi接入 Coze API&#xff0c;实现一个简单的聊天机器人功能。用户可以通过串口向机器人输入问题&#xff0c;ESP32将通过Coze API与智能体进行通信&#xff0c;并返回对应的回复。本文将详细介绍了如…