com.outbrain.ob1k.http.RequestBuilder Maven / Gradle / Ivy
The newest version!
package com.outbrain.ob1k.http;
import com.outbrain.ob1k.concurrent.ComposableFuture;
import com.outbrain.ob1k.http.common.ContentType;
import com.outbrain.ob1k.http.common.Cookie;
import com.outbrain.ob1k.http.common.Header;
import com.outbrain.ob1k.http.common.Param;
import com.outbrain.ob1k.http.marshalling.MarshallingStrategy;
import org.apache.commons.codec.EncoderException;
import rx.Observable;
import java.lang.reflect.Type;
import java.util.List;
import java.util.Map;
/**
* The HttpClient request builder.
* Provides setter for defining of how the request would look,
* with the execution methods.
*
* Can be re-usable for more than one execution
*
* @author marenzon
*/
public interface RequestBuilder {
String USER_AGENT_HEADER = "User-Agent";
String CONTENT_TYPE_HEADER = "Content-Type";
String DEFAULT_CHARSET = "UTF8";
RequestBuilder setContentType(ContentType contentType);
RequestBuilder setContentType(String contentType);
RequestBuilder setPathParam(String param, String value) throws EncoderException;
RequestBuilder setPathParam(Param param) throws EncoderException;
RequestBuilder setPathParams(List params) throws EncoderException;
RequestBuilder setUserAgent(String userAgent);
RequestBuilder addHeader(String name, final String value);
RequestBuilder addHeader(Header header);
RequestBuilder addHeaders(List headers);
RequestBuilder setBody(String body);
RequestBuilder setBody(byte[] body);
RequestBuilder setBody(Object body);
RequestBuilder setBodyEncoding(String charset);
RequestBuilder addQueryParam(String name, String value);
RequestBuilder addQueryParams(Map params);
RequestBuilder addQueryParam(Param param);
RequestBuilder addQueryParams(List params);
RequestBuilder setResponseMaxSize(long responseMaxSize);
RequestBuilder addCookie(Cookie cookie);
RequestBuilder setRequestTimeout(int requestTimeout);
RequestBuilder setMarshallingStrategy(MarshallingStrategy marshallingStrategy);
ComposableFuture asResponse();
Observable asStream();
ComposableFuture> asTypedResponse(Class type);
ComposableFuture> asTypedResponse(Type type);
Observable> asTypedStream(Class type);
Observable> asTypedStream(Type type);
ComposableFuture asValue(Class type);
ComposableFuture asValue(Type type);
Observable asStreamValue(Class type);
Observable asStreamValue(Type type);
} © 2015 - 2025 Weber Informatics LLC | Privacy Policy