dermoritz
dermoritz

Reputation: 13038

How to disable chunking in cxf-jaxrs client

I need to contact a proprietary http service, not supporting chunks. I started using as documented here so i create the client this way:

Client client = ClientBuilder.newBuilder().newClient();
WebTarget target = client.target("http://localhost:8080/rs");

The problem is how to configure the client, how to disable chunking. The way documented here doesn't work for me (wrong classes).

Thanks in advance

Upvotes: 0

Views: 5591

Answers (2)

Karl von Randow
Karl von Randow

Reputation: 484

If you'd like to continue to use the ClientBuilder etc, you can do this instead:

import javax.ws.rs.client.Client;
import javax.ws.rs.client.ClientBuilder;
import javax.ws.rs.client.WebTarget;
import org.apache.cxf.jaxrs.client.WebClient;

Client client = ClientBuilder.newBuilder().build();
WebTarget target = client.target("https://www.example.com/");
target.request(); /* Must call this first to initialise the client in the target */
WebClient.getConfig(target).getHttpConduit().getClient().setAllowChunking(false);

Upvotes: 4

Karthik Prasad
Karthik Prasad

Reputation: 10034

Rather that using jaxrs standard Client you can use org.apache.cxf.jaxrs.client.WebClient part of cxf-rt-rs-client dependency.

WebClient client = WebClient.create("http://localhost:8080/rs");
WebClient.getConfig(client).getHttpConduit().getClient().setAllowChunking(false);

Upvotes: 2

Related Questions