zoukankan      html  css  js  c++  java
  • Feign调用,get请求,参数为对象, 解决请求对象以及参数值为null

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

    服务端:

       @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);
        }

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

  • 相关阅读:
    matlab中pcolorh函数作用
    Matlab中^2和.^2的区别
    Python实战项目网络爬虫 之 爬取小说吧小说正文
    如何查看mysql数据库的端口
    template模板找不到
    templates模板使用变量,显示红色报错
    多线程案例1:奇偶交替输出
    idea配置classpath,后面文件找不到,显示红色
    idea创建各种类型项目
    tomcat修改端口
  • 原文地址:https://www.cnblogs.com/Cassie-wang/p/11690913.html
Copyright © 2011-2022 走看看