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);
1条答案
按热度按时间ikfrs5lh1#
似乎jax-rs客户端被配置为发送gzip数据压缩。如果客户端不知道如何处理gzip压缩数据,它返回400。
解决方案是通过在
JerseyClientConfiguration.java
中调用setGzipEnabled(false)
来禁用gzip