package com.leansoft.nanorest.client;
import java.io.IOException;
import java.util.ArrayList;
import org.apache.http.NameValuePair;
import org.apache.http.client.methods.HttpUriRequest;
import com.leansoft.nanorest.auth.AuthenticationProvider;
import com.leansoft.nanorest.client.BaseRestClient.RequestMethod;
import com.leansoft.nanorest.domain.ResponseStatus;
import com.leansoft.nanorest.exception.HttpException;
public interface RestClient {
public abstract int getConnectionTimeout();
public abstract void setUrl(final String url);
public abstract String getUrl();
public abstract void setConnectionTimeout(final int connectionTimeout);
public abstract int getSocketTimeout();
public abstract void setSocketTimeout(final int socketTimeout);
public abstract void setAuthentication(final AuthenticationProvider authProvider);
public abstract String getResponse();
public abstract ArrayList<NameValuePair> getHeaders();
public abstract ArrayList<NameValuePair> getParams();
public abstract void addHeader(final String name, final String value);
public abstract void addParam(final String name, final String value);
public void setRequestMethod(RequestMethod requestMethod);
public RequestMethod getRequestMethod();
public abstract void executeRequest(final HttpUriRequest request) throws IOException;
public void execute() throws HttpException;
public abstract ResponseStatus getResponseStatus();
}