class GsonRequest extends Request<T> {

    public <R> GsonRequest<T> setRequestData(R requestData, Gson gson, TypeAdapter adapter) {
        try {
            super.setRequestData(requestData, new GsonRequestConverter<>(gson, adapter));
        } catch (IOException e) {
            throw new RuntimeException("Unable to convert " + requestData + " to NetworkRequest", e);
        }
        setNetworkRequest(NetworkRequest.Builder.from(getNetworkRequest())
                .setHeader("Accept", "application/json")
                .build());
        return this;
    }

    public  GsonRequest(String method, HttpUrl url, TypeAdapter<T> typeAdapter);
    public  GsonRequest(String method, HttpUrl url, Class<T> tClass, Gson gson);
    public  GsonRequest(String method, HttpUrl url, Class<T> tClass);
    public  GsonRequest(String method, String url, TypeAdapter<T> typeAdapter);
    public  GsonRequest(String method, String url, Class<T> tClass, Gson gson);
    public  GsonRequest(String method, String url, Class<T> tClass);

}