【RestTemplate】post请求示例

引包:

import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap;
import org.springframework.web.client.RestTemplate;

代码:

        RestTemplate restTemplate = new RestTemplate();
        MultiValueMap<String,Object> paramMap=new LinkedMultiValueMap<String,Object>();
        paramMap.add("name", "何杨");
        paramMap.add("pswd", "1");
        String rsps=restTemplate.postForObject("http://localhost:8080/mediacool/probeUser", paramMap, String.class);
        System.out.println(rsps);

响应:

{"Interface ID":"8973","startTime":"2021-10-31 11:51:30.261381200","visitorIp":"192.168.0.101","code":"303","msg":"确认用户名和密码无误","userInfo":{"id":1,"name":"何杨","email":"1@2.3"},"endTime":"2021-10-31 11:51:30.651390"}

附:接口代码:

复制代码
package com.hy.myapp.rest;

import java.time.LocalDate;
import java.time.LocalTime;
import java.util.LinkedHashMap;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;

import com.hy.myapp.Entity.User;
import com.hy.myapp.service.UserService;
import com.hy.myapp.util.RestUtil;

/**
 * 用于用户服务的Restful控制器
 * @author hy
 * 2021年10月31日
 */
@RestController
public class UserRestCtrl {
    @Autowired
    private UserService userService;
    
    @RequestMapping(value="/probeUser", method=RequestMethod.POST)
    public Map<String,Object> probeUser(String name,String pswd,HttpServletRequest rqst){
        Map<String,Object> retvalMap=new LinkedHashMap<String,Object>();
        
        retvalMap.put("Interface ID", "8973");
        
        String startTime=LocalDate.now()+" "+LocalTime.now();
        retvalMap.put("startTime", startTime);
        
        String visitorIp=RestUtil.findVisitorIpFrom(rqst);
        retvalMap.put("visitorIp", visitorIp);
        
        if(name==null) {
            retvalMap.put("code", "301");
            retvalMap.put("msg", "name不可缺失");
            String endTime=LocalDate.now()+" "+LocalTime.now();
            retvalMap.put("endTime", endTime);
            return retvalMap;
        }
        
        if(pswd==null) {
            retvalMap.put("code", "302");
            retvalMap.put("msg", "password不可缺失");
            String endTime=LocalDate.now()+" "+LocalTime.now();
            retvalMap.put("endTime", endTime);
            return retvalMap;
        }
        
        // 到此name、pswd都有了
        User user=userService.searchUserByNamePswd(name, pswd);
        if(user!=null) {
            retvalMap.put("code", "303");
            retvalMap.put("msg", "确认用户名和密码无误");
            retvalMap.put("userInfo", user);
            
            String endTime=LocalDate.now()+" "+LocalTime.now();
            retvalMap.put("endTime", endTime);
            
            return retvalMap;
        }else {
            retvalMap.put("code", "304");
            retvalMap.put("msg", "用户名或密码有误");
            
            String endTime=LocalDate.now()+" "+LocalTime.now();
            retvalMap.put("endTime", endTime);
            
            return retvalMap;
        }
    }
}
复制代码

END

posted @   逆火狂飙  阅读(740)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
历史上的今天:
2019-10-31 [java]借助java.io.File类,完成文件批量改名
2014-10-31 【Canvas与艺术】绘制斜置黄色三角biohazard标志
2014-10-31 一图说明英语介词
2014-10-31 【高中数学/函数/零点】函数y=2^x+3x的零点所在的一个区间是?
生当作人杰 死亦为鬼雄 至今思项羽 不肯过江东
点击右上角即可分享
微信分享提示