码迷,mamicode.com
首页 > 其他好文 > 详细

Feign调用,get请求,参数为对象, 解决请求对象以及参数值为null

时间:2019-10-17 11:46:22      阅读:538      评论:0      收藏:0      [点我收藏+]

标签:inf   完美   post   sea   media   null   服务   技术   nbsp   

请求参数过多,所以包装成一个请求对象

服务端:

   @GetMapping(value = "/readInfos")
    public List<ExctractInfoVO> readHotels(Search search){
        return this.service.readInfos(search);
    }

API 

@FeignClient(name = "server")//服务名
public interface Server {
    
     @GetMapping(value = "/XXX/XXX/XXXX/readHotels", consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
    public List<ExctractInfoVO> readInfos(Search search);



}

 

客户端

@Service
public class ServiceImpl implements Service{

    @Resource
    Server server;
    
    @Override
    public List<SearchResult> readInfos(Search search){

     Double bd09Lon1 = hotelSearch.getBd09Lon1();
     Double bd09Lat1 = hotelSearch.getBd09Lat1();
     hotelSearch = getLimit(hotelSearch, bd09Lon1, bd09Lat1, distance);

        List<ExctractInfoVO> list = server.readInfos(search);


    }

}

 

运行报错

400:Request method ‘POST‘ not supported

 

上网查了一下  说了一堆源码的东西,结果就是少了一个包, 在服务端添加包

     <dependency>
            <groupId>io.github.openfeign</groupId>
            <artifactId>feign-httpclient</artifactId>
        </dependency>

继续运行虽然没有报错但是数据没有收到

请求

技术图片

 

 

 在客户端断点

技术图片

 

 

 服务端断点

技术图片

 

 

然后各种资料翻看,只是在服务端上面加个@RequestBody, 完美解决,虽然不知道会不会有bug 但是至少现在是解决的了

 

@GetMapping(value = "/readInfos", consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
    public List<ExctractInfoVO> readInfos(@RequestBody  Search search){
        return this.service.readInfos(search);
    }

总得来说 就是添加一个包,一个注解

 

Feign调用,get请求,参数为对象, 解决请求对象以及参数值为null

标签:inf   完美   post   sea   media   null   服务   技术   nbsp   

原文地址:https://www.cnblogs.com/Cassie-wang/p/11690913.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!