All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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