乐趣区

关于java:Java中Get和Post的使用

原文链接

1 Get 申请数据

我的项目地址:https://github.com/Snowstorm0…

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,地址为:localhost:8888/homepage/returnTime。

即可取得以后工夫戳。

2 Post 接收数据

我的项目地址:https://github.com/Snowstorm0…

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,地址为:localhost:8888/homepage/returnTime。

即可取得输入。

3 Post 发送数据

我的项目地址:https://github.com/Snowstorm0…

须要留神,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,地址为:localhost:8889/homepage/postSend

即可取得输入。

 
 

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

代码的路

退出移动版