首页 > 其他分享 >5月8日周一

5月8日周一

时间:2023-05-08 11:14:18浏览次数:32  
标签:JsonResult 封装 请求 HttpPostGet 接口 HTTP 周一

计划

执行

09点01分  回顾监视器和过滤器
09点49分  接口调试如何实现,能闭眼说明白
10点58分  看不进去了,差不多总结好了,回头再背

记录

问题想法

已解决

  1. 无监听listener

知识

1. 过滤器

一个函数做一个参数
filterChain.doFilter(new HttpServletRequestWrapper(request) {
                    @Override //这些就是重写方法
                    public String getParameter(String name) {
                        if (name.trim().startsWith(IGNORE_PARAM_PRE)) {
                            return null;
                        }

                        // 返回值之前 先进行过滤
                        return filterInvalidString(super.getParameter(name));
                    }


                    @Override
                    public String[] getParameterValues(String name) {
                        if (name.trim().startsWith(IGNORE_PARAM_PRE)) {
                            return null;
                        }

                        // 返回值之前 先进行过滤
                        String[] values = super.getParameterValues(name);
                        if (values != null) {
                            for (int i = 0; i < values.length; i++) {
                                values[i] = filterInvalidString(values[i]);
                            }
                        }
                        return values;
                    }
                }, response);

这段代码是一个过滤器的实现,用于过滤HTTP请求中的参数。过滤器的作用是在请求到达目标资源之前对请求进行预处理,或在响应返回客户端之前进行后处理。在这个例子中,该过滤器对请求中的参数进行了过滤,以防止恶意攻击或不良数据的输入。

2. 接口调试的实现
这段代码是一个Java方法,用于调试HTTP接口。接受一个名为interFace的接口DTO对象作为参数,其中包含了请求的方法、地址、请求头、请求参数等信息。
代码首先进行参数校验,判断请求方法和地址是否为空,以及地址是否以"http"开头。如果校验通过,则将请求头转换成Map对象,并将请求参数转换成Map对象或者自定义包体,并根据请求方法调用不同的HTTP请求方法发送请求。
最后将请求结果封装成JsonResult对象返回。如果在发送请求过程中出现异常,则将异常信息封装成JsonResult对象返回。
DTO是Data Transfer Object(数据传输对象)的缩写,是一种数据传输对象。在Java中,DTO通常是一个Java Bean(也称为POJO,Plain Old Java Object),用于封装一组数据,以便在不同层次(如UI、服务层、数据访问层等)之间进行传输。接口DTO对象是指在接口调用过程中传输的数据对象,它通常包含了请求的方法、地址、请求头、请求参数等信息。通过封装这些信息,可以方便地在不同层次之间传输数据,简化代码逻辑。

3. JsonResult(1, Tools.getMap("debugResult", HttpPostGet.post(fullUrl, httpParams, httpHeaders)))中的JsonResult,public class JsonResult implements Serializable{}
这段代码定义了一个名为JsonResult的Java类,该类实现了Serializable接口。Serializable接口是Java中的一个标记接口,它没有任何方法,只是起到一个标记作用,表示该类的对象可以被序列化和反序列化。在Java中,序列化是指将一个对象转换成字节流,以便在网络中传输或者存储到文件中,反序列化则是将字节流转换成对象。通过实现Serializable接口,可以将一个对象序列化成字节流,以便在网络中传输或者存储到文件中。在这段代码中,JsonResult类的对象通常用于封装HTTP接口调用的结果,通过实现Serializable接口,可以将JsonResult对象序列化成字节流,以便在网络中传输或者存储到文件中

4. 具体调用函数

return new JsonResult(1, Tools.getMap("debugResult", HttpPostGet.post(fullUrl, httpParams, httpHeaders)));

这段代码中的new关键字用于创建一个新的JsonResult对象,然后将其作为方法的返回值返回。JsonResult是一个自定义的Java类,通过new关键字可以创建该类的一个新的实例对象。
在这段代码中,JsonResult对象的构造函数需要传入两个参数,第一个参数是状态码,表示调用接口是否成功,通常情况下,状态码为1表示成功,状态码为0表示失败;第二个参数是一个Map对象,用于封装返回结果。在这里,返回结果封装在了一个名为debugResult的键值对中。通过new JsonResult(1, Tools.getMap("debugResult", HttpPostGet.post(fullUrl, httpParams, httpHeaders)))语句创建了一个新的JsonResult对象,并将其作为方法的返回值返回。

5. HttpPostGet.post(fullUrl, httpParams, httpHeaders)
HttpPostGet.post(fullUrl, httpParams, httpHeaders)是一个静态方法调用,用于发送一个HTTP POST请求并返回结果。它的三个参数分别是:

  • fullUrl:请求的完整URL地址,包括协议、主机名、路径和查询参数等。
  • httpParams:请求参数,一个Map对象,其中键值对分别表示参数名和参数值。
  • httpHeaders:请求头,一个Map对象,其中键值对分别表示请求头的名称和值。

该方法会将参数和请求头封装成一个HTTP POST请求,并发送给指定的URL地址。发送请求时,会根据请求头中的Content-Type字段来确定请求体的格式,通常情况下,Content-Type为application/x-www-form-urlencoded表示请求体是表单格式,Content-Type为application/json表示请求体是JSON格式。发送请求后,该方法会返回一个字符串类型的响应结果,表示服务器返回的内容。在这段代码中,HttpPostGet.post(fullUrl, httpParams, httpHeaders)方法的返回值作为JsonResult对象的参数传入构造方法中,用于封装HTTP接口调用的结果。

6. public class HttpPostGet{}java类
是一个工具类,封装了HTTP请求的常用方法,包括GET、POST、PUT、DELETE、HEAD、OPTIONS、TRACE等方法。这个类中的每个方法都是静态方法,可以直接通过类名调用,不需要创建该类的实例对象。在Java中,静态方法是属于类的,而不是属于实例对象的。因此,通过类名调用静态方法时,不需要创建该类的实例对象,直接使用类名即可。
HttpPostGet类的作用是提供HTTP请求的封装,简化HTTP请求的操作,提高代码的可读性和可维护性。

7. HttpPostGet类的作用是提供HTTP请求的封装
HttpPostGet类的作用是封装HTTP请求的常用方法,包括GET、POST、PUT、DELETE、HEAD、OPTIONS、TRACE等方法。这些方法封装了HTTP请求的细节,包括请求头、请求参数、请求体等信息,并通过HTTP协议将数据发送给服务器,并获取服务器返回的数据。这样,使用这些方法时,就无需关注HTTP请求的细节,只需要传入相应的参数即可完成HTTP请求。这样可以提高代码的可读性和可维护性,避免重复的代码编写。同时,这些方法也提供了一些常用的HTTP请求功能,例如表单提交、文件上传、JSON数据提交等。因此,HttpPostGet类的作用是封装HTTP请求的细节,提供常用的HTTP请求功能,简化HTTP请求的操作。

8. HttpPostGet工具类的具体实现需要自己写吗
HttpPostGet是一个自定义的Java工具类,它的具体实现需要自己编写。通常情况下,HTTP请求的实现是通过Java中的java.net包或者org.apache.http包来实现的,这些包提供了HTTP请求所需的类和接口。
在编写HttpPostGet工具类时,可以使用这些类和接口来实现HTTP请求的封装。
具体实现需要根据不同的需求进行编写,例如需要实现GET请求时,可以使用java.net.HttpURLConnection类来实现;需要实现POST请求时,可以使用org.apache.http.client.methods.HttpPost类和org.apache.http.impl.client.CloseableHttpClient类来实现。在实现过程中,需要注意HTTP请求的细节,例如请求头、请求参数、请求体等信息的封装和处理。

标签:JsonResult,封装,请求,HttpPostGet,接口,HTTP,周一
From: https://www.cnblogs.com/barry-first/p/17380670.html

相关文章

  • 获取时间段内每周一
    原文:java获取时间段内的所有星期一_java获取一段时间内的周一_程序媛的格子衫的博客-CSDN博客  大神原文,指定某个时间端,指定需要星期几,返回时间段内指定星期几的日期字符串点击查看代码/***@paramargs*@throwsException*/publicstaticvoid......
  • 周一
    #include<iostream>usingnamespacestd;classRectangle{public:Rectangle(inttop,intleft,intbottom,intright);~Rectangle(){}intgetTop()const{returntop;}intgetLeft()const{returnleft;}intgetBottom()const{returnbo......
  • 周一打卡
    问题描述:有一百块钱,要买100只鸡。公鸡5元一只,母鸡3元一只,小鸡1元三只。问要买几只公鸡、母鸡和小鸡?设计思路:这是一道数学问题,可以用穷举法解决。首先,循环公鸡的数量,然后在循环母鸡的数量,最后计算小鸡的数量,判断是否符合题目要求(钱数和数量)。程序流程图:1.循环公鸡的数......
  • 2023年4月24日周一
    一周计划完成毕设初稿还要写测试部分了解调试功能,mock功能如何实现的知道接口怎么回事,尝试或明白一个接口怎么写精简代码学习angular框架回顾上一周的博客执行09点09分  学习了解angularJS框架,没做,看了会儿3月29日晚的博客09点18分  解决页面颜色的小问题,......
  • 2023/4/23每周一记
    getcap提权,redis-cli写码,docker提权,备份提权当我们需要将本地8080端口映射到远程服务器上的80端口时,可以使用以下命令:ssh-L8080:localhost:80user@remote此时只需要访问neo4j初始化验证账号密码时,需要关闭网页翻译插件,否则会报错redis-cli写马configsetdir/vat/www......
  • 每周一记10
    首先,承载所需功能的软件自身必须要健康才行。达到这一点,需要从计算机硬件的边界完整考虑其生命周期,如机房、电源、计算机资源、网络资源等硬件资源的生命周期;还需要从计算机软件的边界完整考虑其生命周期,如启动、到服务、到关闭等。二者都需要完整考虑,也都需要进行监控。这是软件......
  • 每周一坑-mongo每次启动后莫名关闭
    每周一坑-mongo每次启动后莫名关闭今天这个问题搞了大半天。。。明天找开发确认下功能是否已恢复正常。无意中发现某项目用完阿里云整个2T的oss对象存储,大家都知道,用完额度,超过的部分就会从用户余额去扣费。按道理来说,买的2T针对项目程序上传来说是够的,也不太可能从这里......
  • 2023年4月17日周一
    计划写完初稿第三四章搜集免费的接口查研究邮件发送功能执行09点25分  困11点28分  完成第三四章,但是数据库详细表不知道要不要15点18分  解决不了啊,想显示角色名16点39分  基本修改角色名问题,但是不能同步更新两个表记录问题想法模拟调试如何实现的公......
  • 周一打卡
    1.问题描述:编写程序,实现一个简单的猜数字游戏。程序随机生成一个1~100之间的整数,让玩家猜数字,直到猜中为止。2.设计思路:程序需要用到随机数生成和输入输出。每次猜测后需要进行判断,判断猜测的数字与随机数的大小关系,提供相应提示。直到猜中为止,输出猜测的次数。3.程序流程......
  • 每周一记10
    空间拆分的代价架构拆分的本质就是空间拆分,这在之前的文章中已经探讨过了。一个事物在进行空间拆分之后,必然会变成一个一个不同的个体。每个个体从原有事物中独立出来之后,会形成各自一个一个的独立生命周期。既然是独立生命周期,那么就意味着对原有事物做架构拆分的人——也就是架......