Java中Get和Post的使用

简介: Java中Get和Post的使用

原文链接

1 Get请求数据

项目地址:https://github.com/Snowstorm0/learn-get-post

1.1 Controller

文件名MyController,内容为:

@RestController
@RequestMapping("/homepage")
public class MyController {
    @Autowired
    MyService myService;

    @GetMapping("/learnGet")
    public String learnGet(){
        return myService.learnGet();
    }
}

1.2 Service

文件名MyService,内容为:

@Service
@EnableScheduling
public class MyService {
    public String learnGet(){
        Long timeLong = System.currentTimeMillis();
        SimpleDateFormat timeFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //设置格式
        String timeString = timeFormat.format(timeLong);
        return timeString;
    }
}

1.3 Application

在application.properties配置:

# 设置端口号
server.port=8888

1.4 Postman

配置Get,地址为: http://localhost:8888/homepage/returnTime 。

即可获得当前时间戳。

get.png

2 Post接收数据

项目地址:https://github.com/Snowstorm0/learn-get-post

2.1 Controller

文件名MyController,内容为:

@RestController
@RequestMapping("/homepage")
public class MyController {
    @Autowired
    MyService myService;
    @PostMapping("/postReceive")
    public Map<String, Object> postReceive(@RequestParam("number") int number, @RequestParam("name") String name) {
        return myService.postReceive(number, name);
    }
    @PostMapping("/postReceiveByMap")
    public Map<String, Object> postReceiveByMap(@RequestParam Map<String, Object> map) {
        System.out.println("map:" + map + "\n");
        return myService.postReceiveByMap(map);
    }
}

2.2 Service

文件名MyService,内容为:

@Service
@EnableScheduling
public class MyService {
    public Map<String, Object> postReceive(int number, String name){
        Map<String, Object> res = new HashMap<>();
        res.put("number", number);
        res.put("name", name);
        return res;
    }
    public Map<String, Object> postReceiveByMap(Map<String, Object> map){
        int number = map.get("number") == null ? 0 : Integer.parseInt((String) map.get("number"));
        String name = map.get("name") == null ? "" : (String)map.get("name");
        Map<String, Object> res = new HashMap<>();
        res.put("number", number);
        res.put("name", name);
        System.out.println("map:" + map + "\n");
        System.out.println("res:" + res + "\n");
        return res;
    }

2.3 Application

在application.properties配置:

# 设置端口号
server.port=8888

2.4 Postman

配置Get,地址为: http://localhost:8888/homepage/returnTime 。

即可获得输出。

postReceive.png

3 Post发送数据

项目地址:https://github.com/Snowstorm0/learn-post-send

需要注意,RestTemplate在postForObject时,用MultiValueMap,不可使用HashMap。

3.1 Controller

文件名MyController,内容为:

@RestController
@RequestMapping("/homepage")
public class MyController {

    @Autowired
    MyService myService;

    @PostMapping("/postSend")
    public Map<String, Object> postSend() {
        return myService.postSend();
    }
}

3.2 Service

文件名MyService,内容为:

@Service
@EnableScheduling
public class MyService {
    @Resource
    private RestTemplate restTemplate;
    String URL = "http://localhost:8888/homepage/postReceiveByMap";

    public Map<String, Object> postSend(){
        Map<String, Object> sendData = new HashMap<>();
        sendData.put("number", 3);
        sendData.put("name", "张三");
        ResponseEntity<ResponseResult> responseData = restTemplate.postForEntity(URL, sendData, ResponseResult.class);
        Map<String, Object> returnData = new HashMap<>();
        returnData.put("StatusCode:", responseData.getStatusCode());
        returnData.put("Body:", responseData.getBody());
        return returnData;
    }
}

3.3 ResponseResult

public class ResponseResult {

    private int number;
    private String name;

    public ResponseResult(){
    }

    public int getNumber() {
        return number;
    }
    public void setNumber(int number) {
        this.number = number;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }

    @Override
    public String toString() {
        return "ResponseResult [number=" + number + ",name=" + name + "]";
    }
}

3.4 Config

@Configuration
public class Config {
    @Bean
    public RestTemplate restTemplate(RestTemplateBuilder builder){
        return builder.build();
    }
}

3.5 Application

在application.properties配置:

# 设置端口号
server.port=8889

3.6 Postman

配置Post,地址为: http://localhost:8889/homepage/postSend

即可获得输出。

postSend.png

 
 

学习更多编程知识,请关注我的公众号:

代码的路

相关文章
|
22天前
|
Java
让星星⭐月亮告诉你,Java NIO之Buffer详解 属性capacity/position/limit/mark 方法put(X)/get()/flip()/compact()/clear()
这段代码演示了Java NIO中`ByteBuffer`的基本操作,包括分配、写入、翻转、读取、压缩和清空缓冲区。通过示例展示了`position`、`limit`和`mark`属性的变化过程,帮助理解缓冲区的工作原理。
23 2
|
6月前
|
JSON Java 数据安全/隐私保护
java中的http请求的封装(GET、POST、form表单、JSON形式、SIGN加密形式)
java中的http请求的封装(GET、POST、form表单、JSON形式、SIGN加密形式)
470 1
|
2月前
|
JSON 前端开发 JavaScript
java中post请求调用下载文件接口浏览器未弹窗而是返回一堆json,为啥
客户端调接口需要返回另存为弹窗,下载文件,但是遇到的问题是接口调用成功且不报错,浏览器F12查看居然返回一堆json,而没有另存为弹窗; > 正确的效果应该是:接口调用成功且浏览器F12不返回任何json,而是弹窗另存为窗口,直接保存文件即可。
122 2
|
29天前
|
小程序 Java
小程序通过get请求提交数据到java后台
小程序通过get请求提交数据到java后台
28 0
|
3月前
|
安全 Java 数据库连接
|
5月前
|
Java
java使用Supplier接口的get生产一个数据
java使用Supplier接口的get生产一个数据
|
5月前
|
存储 Java
惊呆了!这些Java List竟然藏着这么多秘密!你get到了吗?
【6月更文挑战第17天】Java中的ArrayList在添加元素时自动扩容,容量翻倍以适应增长;LinkedList则利用双向链表结构提供高效头尾操作。迭代List时,并发修改会导致`ConcurrentModificationException`,需用Iterator或并发集合如CopyOnWriteArrayList。了解这些秘密能优化性能并避免异常。
22 0
|
5月前
|
JSON 安全 Java
JAVA Socket 实现HTTP与HTTPS客户端发送POST与GET方式请求
JAVA Socket 实现HTTP与HTTPS客户端发送POST与GET方式请求
69 0
|
6月前
|
Java
Java编写Http的Get和Post请求示例代码
Java编写Http的Get和Post请求示例代码
79 2
java post/get 重定向问题
• java重定向 • 重定向get请求 • 重定向post请求