Springboot HTTP如何调用其他服务

这篇文章主要介绍了Springboot HTTP如何调用其他服务,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

HTTP如何调用其他服务

1.GET请求

1.1Client代码

import com.alibaba.fastjson.JSON; import org.springframework.stereotype.Service; import org.springframework.web.client.RestTemplate; import org.springframework.web.util.UriComponentsBuilder; import java.net.URI; import java.util.HashMap; import java.util.Map;   @Service public class UserInfoClient {     public String getUserTotalAmount(){         Map map=new HashMap();         map.put("name","123");         map.put("password","123");         URI uri = UriComponentsBuilder.fromHttpUrl("http://localhost:8081/spring/test")                 .queryParam("jsonString",JSON.toJSONString(map))                 .queryParam("token","12122222111")                 .build().encode().toUri();         RestTemplate restTemplate=new RestTemplate();         String data=restTemplate.getForObject(uri,String.class);         System.out.println(data);         return null;     }     public static void main(String[] args){         UserInfoClient c=new UserInfoClient();         c.getUserTotalAmount();     } }

1.2 Service 代码

import org.springframework.web.bind.annotation.*;  @RestController @RequestMapping(value = "/spring") public class Test {     @RequestMapping(value = "/test",method = RequestMethod.GET)     public String testSpringBoot(@RequestParam String jsonString,@RequestParam String token){         System.out.println(jsonString);         System.out.println(token);         /*          *逻辑处理          */         return "Spring Boot 测试成功!";     } }

2.POST请求

2.1Client代码

import com.alibaba.fastjson.JSON; import org.springframework.http.*; import org.springframework.stereotype.Service; import org.springframework.web.client.RestTemplate; import java.util.HashMap; import java.util.Map;   @Service public class UserInfoClient {      public String getUserTotalAmount(){         Map map=new HashMap();         map.put("name","123");         map.put("password","123");         String url="http://localhost:8081/spring/test";         //设置请求头信息         HttpHeaders headers = new HttpHeaders();         MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8");         headers.setContentType(type);         headers.add("Accept", MediaType.APPLICATION_JSON.toString());         //设置body部分         HttpEntity entity = new HttpEntity(JSON.toJSONString(map),headers);         RestTemplate restTemplate=new RestTemplate();         ResponseEntity result = restTemplate.exchange(url, HttpMethod.POST, entity, String.class);         System.out.println(result.getBody());         return null;     }     public static void main(String[] args){         UserInfoClient c=new UserInfoClient();         c.getUserTotalAmount();     } }

2.2 Service代码

 import org.springframework.web.bind.annotation.*; @RestController @RequestMapping(value = "/spring") public class Test { @RequestMapping(value = "/test",method = RequestMethod.POST) public String testSpringBoot(@RequestBody UserBean userBean){ System.out.println(userBean); /* *逻辑处理 */ return "Spring Boot 测试成功!"; } }

springboot请求其他服务器的http接口

使用Get方式,携带headers请求数据

//注入 @Autowired private RestTemplate restTemplate; @RequestMapping("/FaceInfo") @ResponseBody public Object   faceInfo(String startTime,String endTime,Integer size ){     String apiURL = "http://www.05un.cn/wspp/GceGroups";     HttpHeaders headers = new HttpHeaders();    headers.add("userId","38");     // headers.set("userId","38");     headers.setContentType(MediaType.APPLICATION_JSON);     Map requestParam = new HashMap<>();     HttpEntity> request = new HttpEntity>(requestParam, headers);         ResponseEntity entity2 = restTemplate.exchange(apiURL, HttpMethod.GET, request, String.class);     String body = entity2.getBody();     return body; }

使用Post方式,携带body请求数据

//注入 @Autowired private RestTemplate restTemplate; @RequestMapping("/FaceInfo") @ResponseBody public Object   faceInfo(String startTime,String endTime,Integer size ){     String apiURL = "http://www.0531yun.cn/wsjc/app/Login";     HttpHeaders headers = new HttpHeaders();     headers.setContentType(MediaType.APPLICATION_JSON);     Map requestParam = new HashMap<>();     requestParam.put("loginName", "jnr");     requestParam.put("password", "jn");     HttpEntity> request = new HttpEntity>(requestParam, headers);     String s=request.toString();     ResponseEntity entity2 = restTemplate.exchange(apiURL, HttpMethod.POST, request, String.class);     String body = entity2.getBody();     return body; }

以上为个人经验,希望能给大家一个参考,也希望大家多多支持0133技术站。

以上就是Springboot HTTP如何调用其他服务的详细内容,更多请关注0133技术站其它相关文章!

赞(0) 打赏
未经允许不得转载:0133技术站首页 » Java