Spring 对包含“"/空气污染指数;返回403

Spring 对包含“"/空气污染指数;返回403,spring,api,feign,Spring,Api,Feign,我正在尝试使用此端点和假客户端向Poke API发送一个简单请求: @Service @FeignClient(url = "http://pokeapi.co/api/v2", name="RegResService") public interface PokemonApi { @RequestMapping(method = RequestMethod.GET, path="/pokemon-species/{pokemonId

我正在尝试使用此端点和假客户端向Poke API发送一个简单请求:


@Service
@FeignClient(url = "http://pokeapi.co/api/v2", name="RegResService")
public interface PokemonApi {

    @RequestMapping(method = RequestMethod.GET, path="/pokemon-species/{pokemonIdOrName}", produces = APPLICATION_JSON_VALUE)
    PokemonSpeciesResponseDTO getPokemonSpecies(@PathVariable String pokemonIdOrName);

}
我以前也曾尝试将类似的端点发送到
https://reqres.in/api/users?page=2
和都返回403,而它们实际上不需要在浏览器级别进行任何身份验证

更有趣的是,我对这个
GET请求没有任何问题https://jsonplaceholder.typicode.com/users

我不知道有多少复杂的伪装所以也许其他人可以帮忙

我的API配置如下所示

@EnableFeignClients(basePackages = "com.spring.jgiven.jgivenspringfeignselenium.api.clients")
public class APIConfiguration {

    public static final ObjectMapper OBJECT_MAPPER = new ObjectMapper()
            .setSerializationInclusion(JsonInclude.Include.NON_NULL)
            .configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false)
            .configure(SerializationFeature.INDENT_OUTPUT, true)
            .configure(DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY, false)
            .configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);

    @Bean
    public ObjectMapper objectMapper() {
        return OBJECT_MAPPER;
    }

    @Bean
    public Decoder decoder() {
        HttpMessageConverter jacksonConverter = jsonConverter();
        ObjectFactory<HttpMessageConverters> objectFactory = () -> new HttpMessageConverters(jacksonConverter);
        return new ResponseEntityDecoder(new SpringDecoder(objectFactory));
    }

    @Bean
    public Encoder encoder() {
        HttpMessageConverter jacksonConverter = jsonConverter();
        ObjectFactory<HttpMessageConverters> objectFactory = () -> new HttpMessageConverters(jacksonConverter);
        return new SpringFormEncoder(new SpringEncoder(objectFactory));
    }

    @Bean
    public HttpMessageConverter jsonConverter() {
        return new MappingJackson2HttpMessageConverter(OBJECT_MAPPER);
    }
}

And for all the requests I have used similar code. And I find it weird that whatever contains /api/ in an endpoint appears to be an unauthorised request. Thanks!
@enablefignclients(basePackages=“com.spring.jgiven.jgivenspringfeignselenium.api.clients”)
公共类配置{
公共静态最终ObjectMapper对象\u MAPPER=新ObjectMapper()
.setSerializationInclusion(JsonInclude.Include.NON_NULL)
.configure(针对未知属性的反序列化功能.FAIL,false)
.configure(SerializationFeature.INDENT_输出,true)
.configure(反序列化功能。接受单个值作为数组,false)
.configure(SerializationFeature.WRITE_DATES_作为时间戳,false);
@豆子
公共对象映射器对象映射器(){
返回对象映射器;
}
@豆子
公共解码器(){
HttpMessageConverter jacksonConverter=jsonConverter();
ObjectFactory ObjectFactory=()->新的HttpMessageConverter(jacksonConverter);
返回新的ResponseEntityCoder(新的SpringDecoder(objectFactory));
}
@豆子
公共编码器(){
HttpMessageConverter jacksonConverter=jsonConverter();
ObjectFactory ObjectFactory=()->新的HttpMessageConverter(jacksonConverter);
返回新的SpringFormEncoder(新的SpringEncoder(objectFactory));
}
@豆子
公共HttpMessageConverter jsonConverter(){
返回新的MappingJackson2HttpMessageConverter(对象映射器);
}
}
对于所有的请求,我都使用了类似的代码。我觉得奇怪的是,端点中包含/api/的内容似乎都是未经授权的请求。谢谢