java 如何使用jax-rs发送x-www-form-url-encoded请求?

jjjwad0x  于 2023-04-28  发布在  Java
关注(0)|答案(1)|浏览(108)
curl --location --request POST 'http://localhost:8080/api/7/run' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'start=1510630400000' \
--data-urlencode 'end=1526092400000'

上面的curl命令可以工作,但是我试图使用javax.ws.rs做同样的事情,但是我得到了406错误。下面是我的代码

Form form = new Form()
            .param("start", "1510630400000")
            .param("end", "1526092400000");

        Response response = client.target("http://localhost:8080/api/7/run")
                .request(MediaType.APPLICATION_FORM_URLENCODED)
                .accept(MediaType.TEXT_PLAIN)
                .post(Entity.form(form));
        assertThat(response.getStatus()).isEqualTo(200);
ikfrs5lh

ikfrs5lh1#

似乎jax-rs客户端被配置为发送gzip数据压缩。如果客户端不知道如何处理gzip压缩数据,它返回400。
解决方案是通过在JerseyClientConfiguration.java中调用setGzipEnabled(false)来禁用gzip

相关问题