請求參數過多,所以包裝成一個請求對象
服務端:
@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); }
總得來說 就是添加一個包,一個注解
