// Path: http/src/main/java/com/mcxiaoke/next/http/transformer/HttpTransformer.java
// public interface HttpTransformer<T> {
// 
//     T transform(NextResponse response) throws IOException;
// }


import android.util.Log;
import com.mcxiaoke.next.http.transformer.HttpTransformer;
import com.mcxiaoke.next.utils.AssertUtils;
import com.mcxiaoke.next.utils.LogUtils;
import okhttp3.Headers;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import java.io.IOException;
import java.util.Map;
    }

    public NextResponse post(final String url, final NextParams params) throws IOException {
        return request(HttpMethod.POST, url, params);
    }

    public NextResponse put(final String url, final NextParams params) throws IOException {
        return request(HttpMethod.PUT, url, params);
    }

    public NextResponse request(final HttpMethod method, final String url,
                                final Map<String, String> queries,
                                final Map<String, String> forms)
            throws IOException {
        return request(method, url, queries, forms, null);
    }

    public NextResponse request(final HttpMethod method, final String url,
                                final Map<String, String> queries,
                                final Map<String, String> forms,
                                final Map<String, String> headers)
            throws IOException {
        return executeInternal(createRequest(method, url,
                queries, forms, headers));
    }

    public <T> T request(final HttpMethod method, final String url,
                         final Map<String, String> queries,
                         final Map<String, String> forms,
                         final Map<String, String> headers,
// Path: http/src/main/java/com/mcxiaoke/next/http/transformer/HttpTransformer.java
// public interface HttpTransformer<T> {
// 
//     T transform(NextResponse response) throws IOException;
// }


// Path: http/src/main/java/com/mcxiaoke/next/http/NextClient.java
import android.util.Log;
import com.mcxiaoke.next.http.transformer.HttpTransformer;
import com.mcxiaoke.next.utils.AssertUtils;
import com.mcxiaoke.next.utils.LogUtils;
import okhttp3.Headers;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import java.io.IOException;
import java.util.Map;

    }

    public NextResponse post(final String url, final NextParams params) throws IOException {
        return request(HttpMethod.POST, url, params);
    }

    public NextResponse put(final String url, final NextParams params) throws IOException {
        return request(HttpMethod.PUT, url, params);
    }

    public NextResponse request(final HttpMethod method, final String url,
                                final Map<String, String> queries,
                                final Map<String, String> forms)
            throws IOException {
        return request(method, url, queries, forms, null);
    }

    public NextResponse request(final HttpMethod method, final String url,
                                final Map<String, String> queries,
                                final Map<String, String> forms,
                                final Map<String, String> headers)
            throws IOException {
        return executeInternal(createRequest(method, url,
                queries, forms, headers));
    }

    public <T> T request(final HttpMethod method, final String url,
                         final Map<String, String> queries,
                         final Map<String, String> forms,
                         final Map<String, String> headers,
                         final HttpTransformer<T> converter)