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

io.github.saoxuequ.http.request.smooth.Invoker Maven / Gradle / Ivy

package io.github.saoxuequ.http.request.smooth;

import io.github.saoxuequ.http.request.common.Readable;
import io.github.saoxuequ.http.request.core.HttpExecutor;
import io.github.saoxuequ.http.request.core.Request;
import io.github.saoxuequ.http.request.utils.UriTemplate;

import java.net.URI;
import java.util.Collections;
import java.util.List;

public class Invoker extends AbstractInvoker> {

    public Invoker(HttpExecutor httpExecutor, CookieProvider cookieProvider,
                   String method, UriTemplate urlTemplate,
                   Readable responseReader) {
        super(httpExecutor, cookieProvider, method, urlTemplate, responseReader);
    }

    @Override
    protected Invoker self() {
        return this;
    }

    public R invoke(List urlParams) {
        URI uri = getUrlTemplate().generateUri(urlParams);
        if (getCookieProvider() != null) {
            setCookies(getCookieProvider().provide(uri));
        }
        Request request = new Request<>(getMethod(),
                uri,
                getHeaders(),
                getResponseReader());
        return getHttpExecutor().execute(request, getConnTimeout(), getReadTimeout());
    }

    public R invoke() {
        URI uri = getUrlTemplate().generateUri(Collections.emptyList());
        if (getCookieProvider() != null) {
            setCookies(getCookieProvider().provide(uri));
        }
        Request request = new Request<>(getMethod(),
                uri,
                getHeaders(),
                getResponseReader());
        return getHttpExecutor().execute(request, getConnTimeout(), getReadTimeout());
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy