Java后端发送get和post请求

乐鑫WIFI芯片开发流程梳理-工具链、编译和下载 最近开始基于乐鑫ESP32的WIFI模组的软件开发,首先要做整套流程的梳理,乐鑫官网以及安信可上已经有了较为系统的资料,但是在实现过程中也遇到了一些问题,花了几天去解决,所以为了总结,也为了给其他人提供一些借鉴,把流程分享一下,官网上相对比较完善的,就不在赘述。 1. 开发方案选择 目前网上有两套较为成熟的方案: (1)基于乐鑫官网推荐的开发方式,原网页:https://docs.espress... 阅读详情

采用restTemplate直接发送:

Get请求

示例:Integer shopNumber = restTemplate.getForObject(requestUrl,Integer.class,shopIds);

  • requestUrl:请求的url地址
  • Integer.class:返回值类型
  • shopIds:传入的内容,这里shopIds为一个List<String>类型的集合

Post请求

示例:Integer shopNumber = restTemplate.postForObject(requestUrl,shopIds,Integer.class);

Post请求和Get请求就是把返回值类型和传入的内容对换一下。

具体一点的内容可以参照:https://blog.youkuaiyun.com/u012702547/article/details/77917939或者

https://blog.youkuaiyun.com/itguangit/article/details/78825505

 

但是用restTemplate方式发送post请求携带json格式的数据时貌似会有一点问题,具体我也没有去了解,但是可以采用以下方式去替代。该代码有验证过,可以直接使用。

CloseableHttpClient httpclient = HttpClientBuilder.create().build();
HttpPost post = new HttpPost(requestUrl);
JSONObject response = null;
log.debug("requestUrl为" + requestUrl);
Integer shopNumber = 0;
try {
    StringEntity s = new StringEntity(JSONObject.toJSONString(shopIds));
    s.setContentEncoding("UTF-8");
    s.setContentType("application/json");//发送json数据需要设置contentType
    post.setEntity(s);
    HttpResponse res = httpclient.execute(post);
    log.debug("发送post请求");
    if (res.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
        log.info("post请求成功");
        String result = EntityUtils.toString(res.getEntity());// 返回json格式:
        log.info("number请求返回的数据为" + result);
        System.out.println(result);
        response = JSONObject.parseObject(result);
        shopNumber = (Integer) response.get("data");
        //如果需要返回一个类,可以用下面的方式去转换jason格式的数据
        //JSONArray data = (JSONArray) response.get("data");
        //cameraShops = JSONArray.parseArray(data + "", CameraShop.class);
    }
} catch (Exception e) {
    log.info(e.getMessage());
    return RestResultGenerator.createFailResult("获取摄像头门店数量错误");
}

 

新增:java发送post请求,使用multipart/form-data的方式传递参数,使用的HTTP框架是HttpURLConnection。网址也可参考:https://www.cnblogs.com/jying/p/10310865.html

post方法如下:

 private final static int CONNECT_TIME_OUT = 30000;
 private final static int READ_OUT_TIME = 50000;
 private static String boundaryString = getBoundary();

private byte[] post(String url, HashMap<String, String> map,HashMap<String, byte[]> fileMap) throws Exception {
        HttpURLConnection conne;
        URL url1 = new URL(url);
        conne = (HttpURLConnection) url1.openConnection();
        conne.setDoOutput(true);
        conne.setUseCaches(false);
        conne.setRequestMethod("POST");
        conne.setConnectTimeout(CONNECT_TIME_OUT);
        conne.setReadTimeout(READ_OUT_TIME);
        conne.setRequestProperty("accept", "*/*");
        conne.setRequestProperty("Content-Type", "multipart/form-data; boundary=" + boundaryString);
        conne.setRequestProperty("connection", "Keep-Alive");
        conne.setRequestProperty("user-agent", "Mozilla/4.0 (compatible;MSIE 6.0;Windows NT 5.1;SV1)");
        DataOutputStream obos = new DataOutputStream(conne.getOutputStream());
        Iterator iter = map.entrySet().iterator();
        while(iter.hasNext()){
            Map.Entry<String, String> entry = (Map.Entry) iter.next();
            String key = entry.getKey();
            String value = entry.getValue();
            obos.writeBytes("--" + boundaryString + "\r\n");
            obos.writeBytes("Content-Disposition: form-data; name=\"" + key
                    + "\"\r\n");
            obos.writeBytes("\r\n");
            obos.writeBytes(value + "\r\n");
        }
        if(fileMap != null && fileMap.size() > 0){
            Iterator fileIter = fileMap.entrySet().iterator();
            while(fileIter.hasNext()){
                Map.Entry<String, byte[]> fileEntry = (Map.Entry<String, byte[]>) fileIter.next();
                obos.writeBytes("--" + boundaryString + "\r\n");
                obos.writeBytes("Content-Disposition: form-data; name=\"" + fileEntry.getKey()
                        + "\"; filename=\"" + encode(" ") + "\"\r\n");
                obos.writeBytes("\r\n");
                obos.write(fileEntry.getValue());
                obos.writeBytes("\r\n");
            }
        }
        obos.writeBytes("--" + boundaryString + "--" + "\r\n");
        obos.writeBytes("\r\n");
        obos.flush();
        obos.close();
        InputStream ins = null;
        int code = conne.getResponseCode();
        try{
            if(code == 200){
                ins = conne.getInputStream();
            }else{
                ins = conne.getErrorStream();
            }
        }catch (SSLException e){
            e.printStackTrace();
            return new byte[0];
        }
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        byte[] buff = new byte[4096];
        int len;
        while((len = ins.read(buff)) != -1){
            baos.write(buff, 0, len);
        }
        byte[] bytes = baos.toByteArray();
        ins.close();
        return bytes;
    }

 private static String getBoundary() {
        StringBuilder sb = new StringBuilder();
        Random random = new Random();
        for(int i = 0; i < 32; ++i) {
            sb.append("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_-".charAt(random.nextInt("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_".length())));
        }
        return sb.toString();
    }

 

PCL 八叉树的使用 八叉树(Octree)是一种空间划分的数据结构,广泛应用于三维点云的处理和分析。八叉树通过将空间递归地划分为八个子区域,可以有效地组织和索引三维点数据,提升点云的查询、降采样和配准等操作的效率。 阅读详情

相关推荐

从ADS到SystemVue:当简单链路预算不够用时,我的射频系统级仿真方案升级实录

本文详细介绍了从ADS到SystemVue的射频系统级仿真升级路径,重点分析了基础链路预算在多端口元件和复杂场景下的局限性,并提供了SystemVue在非线性系统验证和跨域协同分析中的优势。通过实际案例展示了如何平滑迁移工具链,提升仿真精度和效率,适用于5G、毫米波雷达等现代射频系统设计。

weixin_34233974的博客 343

JAVA后端请求==>发送请求的五种方式

一、为啥要整理呢? 工作一年,遇见了多种发送请求的方式,但对这方面的整理还是只鳞片解,不说详细了解,单纯的概念和使用还是需要整理一波的,淦起来。下面稍微讲解下http和https,不需要的同学可以直接跳过,这块简而言之,如果是https地址,在后端发送请求时,确定是否带上证书或忽略证书即可。 1.1 http和https 1.1.1 HTTP和HTTPS的基本概念 HTTP:是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从WWW服务器传输超文本到本地浏览器的传输

qq_41166869的博客 7183

hCaptcha Enterprise绕过方案对比:四种Capsolver任务类型怎么选?

本文深入评测了hCaptcha Enterprise的四种Capsolver任务类型(HCaptchaEnterpriseTask、HCaptchaEnterpriseTaskProxyLess、HCaptchaTurboTask和HCaptchaTurboTaskProxyLess),分析其技术架构、性能表现及适用场景。通过基准测试和成本模型比较,帮助技术团队选择最优解决方案,提升自动化流程的验证通过率与成本效益。

rrr55的博客 321

后端发送HTTP请求

后端发送HTTP请求

weixin_45565886的博客 2423

分数计算器(C++课设)

需求概述 (1)设计一个分数计算器,进行分数的算术运算和逻辑运算。 (2)能够像使用基本数据的对象一样,对分数进行“+”、“-”、“*”和“/”等算术运算和比较两个分数的大小。 (3)以a/b的形式输入输出分数,允许输入输出整数这种特殊形式。 (4)对不是约化型的分数进行约化,避免分母为负数。 (5)如果分数的分母为0、除数为0或输入时格式有错,采用异常处理机制解决。 输入 以分数的形式输入。(如1/2) 若分母为0会抛出异常,重新输入。 菜单页面 RationalNumber.h(头文件) #ifnd

sadnessss的博客 8769

计算机国际会议中的proceedings、conference、paper、workshop、demo:如何区分与选择?

本文详细解析了计算机国际会议中的核心概念:Conference(会议)是学术交流的主舞台,Paper(论文)是研究成果的书面呈现,被接收后收录于Proceedings(会议论文集)。Workshop(研讨会)聚焦前沿细分领域,Demo(演示)则侧重系统与工具的可交互展示。文章为研究者根据自身阶段与工作类型,如何区分与选择投稿目标提供了实用指南。

weixin_29269441的博客 562

后端如何发出请求_后端同学的前端学习之路

前言 为什么需要前端学习:需要搭建一个完整的流程工具系统,而组内前端资源比较匮乏,因此前端的学习是必须的。总的来说,需要学习这三个基本的方面 第一章: 总体概述与概览 HTML 定义了网页的内容CSS 定义了网页的布局JavaScript 定义了网页的行为 第二章 HTML 学习指南https://www.w3school.com.cn/tags/tag_input.asp 标签学习、记忆为主...

weixin_39996798的博客 374

Altium Designer铺铜陷阱:为什么你的死铜总是清除不干净?

本文深入探讨Altium Designer中铺铜操作导致死铜无法清除的常见问题,分析死铜形成的五大诱因,并提供高级参数优化和网络连接性验证技巧。通过调整边界计算精度和泪滴算法设置,有效解决死铜残留问题,提升PCB设计质量与制造良率。

weixin_29169505的博客 359

java后端Post请求

后端Post请求 package com.lingxiang.expression.service; import org.apache.commons.httpclient.HttpStatus; import org.apache.commons.httpclient.methods.PostMethod; import java.io.BufferedReader; import j...

qq_39147389的博客 1508

Oracle EBS Interface/API(49)- AP付款取消API

Oracle EBS AP付款取消API介绍和简单实例

陈显平的专栏-Oracle EBS 849

2025目标检测新方向:弱监督目标检测的最新论文研究与应用

2025目标检测新方向:弱监督目标检测的最新论文研究与应用 ,人工智能,计算机视觉,大模型,AI,本文聚焦2025年弱监督目标检测新方向,阐述其基础概念,包括弱监督学习定义、标注形式及面临的定位不准等挑战。介绍最新论文研究的多种算法,如基于点标注的算法等,还涉及相关模型、应用领域,以及评价指标、数据集、实现工具框架,分析未来趋势与补充挑战及解决方案,为该领域研究提供全面参考。

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 7万+

后端发送请求

axios.post(‘http://localhost:8080/后端请求路径’,{axios.get(“http://localhost:8080/后端请求路径”,{axios.put(‘http://localhost:8080/后端请求路径’,{2.当后端发送post请求,此时后台需要使用@RequestBody。二、1.当后端发送get请求,此时前端可以使用params传递参数。//console.log(‘响应拦截’,response)// 添加Axios响应拦截器。一、Vue整合Axios。

Susir001的博客 276

【Python_Zebra斑马打印机编程学习笔记(二)】基于BarTender将btw文件转换为zpl文件

本文介绍如何基于 BarTender 软件将 btw 格式的文件转换为 zpl 格式的文件,有需要的读者可以点赞收藏,也欢迎在评论区进行讨论。

禾戊之昂的博客 3375

JAVA实现后端发送POST请求和GET请求

用后端发起请求的原因是因为,可能在不同的电脑使用前端的时候,所产生的IP是不同的,而有的时候常常会对发起请求的IP及端口号进行限制。所以在你使用前端直接对别人的服务发起请求的时候,就可能会遇到请求失败的时候。 通过RestTemplate发送GET请求以及POST请求。中间问题还有挺多,时间比较急,研究比较浅,做的时候只追求了能使用即可。 GET请求 String resString = null...

qq_36676682的博客 4423

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

java后端发送get和post两种请求与定时器

Spring使用@Scheduled注解写定时任务,调用时间设置可自行百度.apache提供HttpClient与HttpGet或HttpPost搭配使用发送get或post请求 1.定义调度时间 定义调用时间 public final static String ProjectOffEvidence = "0 50 1 * * ?"; 2.controller层调用 Control...

LIURONGTAI的博客 1972

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

java后端如何发送httpGET和POST请求

用java后端发送请求需要用到的一个工具包为HttpClient。HttpClient是Apache的一个子项目,是高效的、功能丰富的支持HTTP协议的客户端编程工具包。引入依赖dependencygroupIdgroupIdartifactIdartifactIdversion>4.5.13

Lzehui的博客 1341

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

php获取get/post请求的数据

发送请求: 这里使用的事java发送的请求,发送

月清空的博客 3万+

使用axios进行接口请求和使用Java进行接收

1、axios普通get请求 //axios普通get请求 //方法名为test,传入数据value function test(value) { axios({ //请求方式 method:'get', //后端接口路径 url:'/sys/test', //注意这里使用的是params,该属性负责把属性名和属性值添加到url后面,一般和get配合使用,但也能和post配合使用 params: { //attributeName为属性名

m0_64284147的博客 9284

php get 请求数据格式,php获取get/post请求的数据

发送请求:这里使用的是java发送的请求,发送post请求使用了apache的httpclient开源项目。private static String HTTPHead = "http://localhost/stu.php";/*** 发送get请求** @param name* @param age*/public void sendHttpGetRequest(String name, in...

weixin_32309879的博客 723

Java后端发送http请求

1、在pom.xml中导入jar的坐标 <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.5.5</version> </dependency> 2、创建请求客户端 CloseableHttpClient aDefault = H

weixin_42250577的博客 3200

java中模拟浏览器向服务器发送请求

java中模拟浏览器向服务器发送请求 1.简介: java中模拟浏览器向服务器发送请求,可以更好的理解前后端的数据交互以及http协议的工作机制。这个技术是理解以及自己写一个爬虫的理论基础。 2.直接上代码 前言:我是在springboot框架项目上写的代码 package com.example.demo2.Test.controller; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStr

weixin_41657954的博客 4740

java实现get请求和post请求对接SpringBoot后端

1.原理 假设不能使用浏览器发送http请求,而是使用自己的程序,还要写出GUI来便于其他人使用。怎么做呢?简单理解就是写爬虫程序啦。然后套个GUI的壳。 本文暂时只给出get和post的简单实现和springboot项目对接的demo。 2.后端准备 这里的代码在创建完SpringBoot项目后,直接复制粘贴即可。 Restful结果封装类 public class ApiRestResponse<T> { private Integer status; private String

ravi's blog 885

中post请求提交数组_【原创】在Java中使用Get/Post方式发送Http请求

在Java中使用Get/Post方式发送Http请求RESTfulClient工具类:package com.fsc.civet.mongo.util;import java.io.File;import java.io.IOException;import java.nio.charset.Charset;import java.util.ArrayList;import java.u...

weixin_42386819的博客 217

JAVA后台发送http请求工具类

有三个方法,一个GET请求 两个POST请求(分别是传String 和JSON格式的)。 package com.wangyj.util; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWrite...

常雪恨's Blog 1584

使用httpclient实现后台java发送post和get请求

原文:https://blog.youkuaiyun.com/mhqyr422/article/details/79787518

qq_42455280的博客 782

Java用HttpClient3发送http/https协议get/post请求,发送map,jso

https://blog.51cto.com/13919357/2177244

qq_32159015的博客 437
上一篇: Java注解整理
下一篇: webstorm结合npm编译前端代码生成dist文件夹
try_learner
博客等级 码龄9年 35粉丝 44原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值