计划
执行
08点59分 查重
09点07分 完全重头跑一次代码
09点34分 回顾上一周的博客
10点02分 跑代码,修改界面
10点47分 完成邀请用户时同步角色名的验证
11点16分 学习请求头
15点14分 看mock功能
16点19分 看看别的书/英语
记录
问题想法
if (!"项目经理".equals(user.getTrueName()) || !"接口开发人员".equals(user.getTrueName()) || !"测试人员".equals(user.getTrueName()) || !"审核人员".equals(user.getTrueName())) { throw new MyException(MyError.E000080); }
这个语句有问题因为括号位置不对
解释:这个用&&就对了,因为当输入正确时,就会有一个是1,那么就都是1,然后抛出异常
已解决
- 查重后是37.55%
- 页面绿色终于改了
- 修改新增用户中对于角色名合法的判断,增加限制
GPT
-
接口中的请求头是怎么回事
请求头是客户端向服务器发送请求时携带的一些信息,用于告诉服务器一些关于请求的参数、格式、编码等信息。请求头的作用包括:
告知服务器请求的数据格式:常见的请求数据格式有JSON、XML、表单等,请求头中的Content-Type字段可以告诉服务器请求的数据格式。
告知服务器请求的编码方式:请求头中的Accept-Encoding字段可以告诉服务器客户端支持的编码方式,例如gzip、deflate等。
告知服务器请求的语言:请求头中的Accept-Language字段可以告诉服务器客户端支持的语言类型。
告知服务器客户端的身份认证信息:请求头中的Authorization字段可以携带客户端的身份认证信息,例如用户名和密码等。
告知服务器客户端的浏览器类型和版本:请求头中的User-Agent字段可以告诉服务器客户端的浏览器类型和版本,方便服务器进行浏览器兼容性处理。
告知服务器客户端的Cookie信息:请求头中的Cookie字段可以携带客户端的Cookie信息,方便服务器进行用户身份识别。 -
可以没有请求头吗
在使用HTTP协议进行通信时,请求头是必须要有的一部分。因为请求头中包含了客户端与服务端之间的一些额外信息,服务端需要根据这些信息来处理请求。如果没有请求头,服务端将无法正确地处理请求,也无法返回正确的响应结果。
当然,在某些特殊情况下,可以不需要某些请求头。例如,对于一些简单的GET请求,可以不需要Content-Type请求头,因为请求体为空。但是,大多数情况下,请求头是必须要有的 -
字符串比较时需要使用equals()方法,而不是""或"!="操作符。因为""或"!="操作符比较的是字符串对象的引用,而equals()方法比较的是字符串对象的值。
字符串不相等的条件应该使用逻辑运算符"&&"或"||"连接,而不是位运算符"&"或"|"。因为逻辑运算符可以短路,而位运算符不会短路,可能会导致错误的结果。 -
该方法是一个请求处理方法,使用@RequestMapping注解标注了请求路径为"/debug.do"。同时使用@ResponseBody注解将返回值转化为JSON格式。
该方法使用了@AuthPassport注解,表示该方法需要进行身份认证才能访问。接着进行了参数校验,判断请求方法和地址是否为空,以及地址是否以"http"开头。
接着将请求头和请求参数进行解析,转化为Map格式。如果请求参数类型为自定义,则使用HttpPostGet.postBody方法发送自定义包体。否则,根据请求方法调用不同的发送请求的方法,并将结果封装到JsonResult对象中返回。
如果发送请求出错,则打印错误信息,并将错误信息封装到JsonResult对象中返回。 -
Map是Java中常用的一种数据结构,它是一种键值对的集合,其中每个键值对都由一个唯一的键和一个对应的值组成。在Java中,Map是一个接口,它有多种实现方式,如HashMap、TreeMap、LinkedHashMap等。
Map格式可以用来存储一些具有键值对关系的数据,例如请求头和请求参数。在Map中,键是唯一的,并且可以通过键来快速查找对应的值。因此,在处理请求时,将请求头和请求参数转化为Map格式,可以方便地进行操作和处理。 -
Debug时根据不同的请求方法调用不同的发送请求的方法,使用了HttpPostGet这个Java工具类
HttpPostGet是一个Java工具类,用于发送HTTP POST和GET请求。它封装了Java自带的HttpURLConnection类和Apache HttpClient库,提供了更加简单易用的API,方便开发者发送HTTP请求并获取响应结果。使用HttpPostGet可以设置请求头、请求体、超时时间等参数,并支持HTTP和HTTPS协议。此外,它还提供了一些常见的HTTP请求方法,如POST、GET、PUT、DELETE等,可以根据实际需求选择使用。 -
CrapDebugController
该类实现了CrapDebug插件的接口同步功能,包括处理项目、处理模块和处理接口。用户在使用CrapDebug插件时,可以将自己的接口同步到CrapApi网站上,方便在网站上进行接口测试和管理。其中,处理项目主要是根据用户ID生成调试项目ID,如果该用户已有调试项目,则直接使用该项目,否则新建项目;处理模块主要是根据模块唯一标识判断模块是否存在,如果存在则更新模块信息,否则新建模块;处理接口主要是根据接口唯一标识判断接口是否存在,如果存在则更新接口信息,否则新建接口。 -
Postwoman 简介 (原ApiDebug)
Postwoman(原apiDebug) 是一个完全免费的接口调试插件,该插件可独立使用,同时数据也能同步至云端,实现跨终端共享。Postwoman支持post、get、xml、josn等测试,支持环境切换(全局变量)。 相比于Postman等插件,Postwoman无需跨过长城即可安装使用,同时有完善的接口管理系统(postwoman.cn 可内网部署),Postwoman支持接口、文档等管理等。产品开发来着BAT,拥有丰富的接口开发、调试经验,产品不断更新迭代,更适合国内用户使用。 -
ApiDebug为独立插件,与CrapApi接口管理系统接口数据没有互通,能不依赖服务器运行,服务器仅作数据备份
CrapApi-Plug为CrapApi接口管理软件的增强插件,不能单独使用,必须为联网状态才能使用,接口数据与管理系统接口一致
安装插件后,接口调试页面可实现跨域调试,否则只能通过服务器端请求接口(无法调试本地接口、无法使用host配置,即:所有接口必须外网能访问才能调试)、安装接口后,只要本地浏览器登录,将自动携带网站cookie -
/mock中的getExam
该方法用于获取接口的模拟数据。接收参数包括HttpServletResponse对象、HttpServletRequest对象、接口ID、IP地址和一个布尔值,用于指示是否获取真实的数据。方法首先设置响应头,然后判断缓存中是否已经存在接口的模拟数据,如果存在则直接返回缓存中的数据。如果缓存中不存在数据,则从数据库中获取接口的信息,并根据布尔值获取真实数据或者模拟数据。最后将数据存入缓存并返回给调用者。 -
SpringCache缓存工具
public Cache<String, String> getCache(){
if (cache == null) {
cache = CacheBuilder.newBuilder()
.initialCapacity(10)
.concurrencyLevel(5)
.expireAfterWrite(10 * 60, TimeUnit.SECONDS)
.build();
}
return cache;
} -
getRemoteHost()是HttpServletRequest接口中的一个方法,用于获取发出请求的客户端的IP地址或域名。当客户端发送请求时,该方法会返回客户端的IP地址或域名,用于标识客户端的身份。如果客户端使用了代理服务器,则该方法返回的是代理服务器的IP地址或域名。如果无法确定客户端的IP地址或域名,则该方法返回null。