fiddler抓取guns框架登录以及业务接口【java】
2021/12/25 20:07:16
本文主要是介绍fiddler抓取guns框架登录以及业务接口【java】,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
点击登录按钮后在fiddler中找出请求url。链接过多的话设置一下fiddler中的过滤器就好了。
登录进来后随便点击一个功能进行测试。
直接点击raw就能看到请求头的全部内容。下面的点击json,就能看到返回的响应结果了。
下面是java代码,因为我是学Java的,所以就用java来远程调用接口了。
package com.example.springwangwork; import org.springframework.context.annotation.Configuration; import org.springframework.http.HttpEntity; import org.springframework.http.HttpMethod; import org.springframework.http.ResponseEntity; import org.springframework.util.LinkedMultiValueMap; import org.springframework.web.client.RestTemplate; import java.util.HashMap; import java.util.Map; /** * @author: Mr.Wang * @create: 2021-12-19 10:49 **/ @Configuration public class Main { private static final RestTemplate restTemplate = new RestTemplate(); public static void main(String[] args) throws InterruptedException { //设置请求头内容 LinkedMultiValueMap<String, String> headers = new LinkedMultiValueMap<>(); headers.set("Accept","application/json, text/javascript, */*; q=0.01"); headers.set("Accept-Encoding","gzip, deflate, br"); headers.set("Accept-Language","zh-CN,zh;q=0.9"); headers.set("Content-Type","application/json"); headers.set("User-Agent","Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36 Core/1.77.85.400 QQBrowser/10.9.4610.400"); HashMap<?, ?> post = post("http://localhost:8080/login",headers); //登录获取token String data = (String) post.get("data");//成功登录后,提取token设置在请求头中,因为每个请求都需要验证token。 headers.add("Authorization",data);//guns中的shiro登录验证存放于名为Authorization的cookies中,里面放的是jwt的token。 //获取业务中的json需要发送get请求,因为是查询嘛。他controller设置的请求只允许get请求。get请求想要携带请求头的话需要通过restTemplate的exchange方法。不能直接getForObject ResponseEntity<String> exchange = exchange("http://localhost:8080/sysUser/currentUserInfo", headers); System.out.println(exchange); } public static HashMap<?,?> get(String url){ return restTemplate.getForObject(url, HashMap.class); } public static ResponseEntity<String> exchange(String url,LinkedMultiValueMap<String,String> headers){ HttpEntity<String> httpEntity = new HttpEntity<>("parameters",headers); return restTemplate.exchange(url, HttpMethod.GET, httpEntity, String.class); } public static HashMap<?,?> post(String url,LinkedMultiValueMap<String,String> headers){ //请求体需要携带的参数,账号密码。 Map<String, String> valueMap = new HashMap<>(); valueMap.put("account","admin"); valueMap.put("password","123456"); valueMap.put("rememberMe","True"); HttpEntity<Map<String, String>> httpEntity = new HttpEntity<>(valueMap,headers);//对请求头,请求体进行封装 return restTemplate.postForObject(url, httpEntity, HashMap.class);//发出请求 } }
请求头内容
浏览器控制台也是一样的
控制台打印信息,现在就可以直接对接到前端去了。这样做的原因仅仅是后端远程调用不存在跨域。如果前端也可以不用跨域进行远程访问的话,也就不用这么多花里胡哨的了,直接js就搞定了。教程结束,第一次发帖。有错误的大家可以指点一下!
这篇关于fiddler抓取guns框架登录以及业务接口【java】的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-10-01基于Python+Vue开发的医院门诊预约挂号系统
- 2024-10-01基于Python+Vue开发的旅游景区管理系统
- 2024-10-01RestfulAPI入门指南:打造简单易懂的API接口
- 2024-10-01初学者指南:了解和使用Server Action
- 2024-10-01Server Component入门指南:搭建与配置详解
- 2024-10-01React 中使用 useRequest 实现数据请求
- 2024-10-01使用 golang 将ETH账户的资产平均分散到其他账户
- 2024-10-01JWT用户校验课程:从入门到实践
- 2024-10-01Server Component课程入门指南
- 2024-09-30Dnd-Kit学习:新手快速入门指南