Search in sources :

Example 91 with Header

use of okhttp3.internal.http2.Header in project azure-sdk-for-java by Azure.

the class MockIntegrationTestBase method recordRequestAndResponse.

private Response recordRequestAndResponse(Interceptor.Chain chain) throws IOException {
    Request request = chain.request();
    NetworkCallRecord networkCallRecord = new NetworkCallRecord();
    networkCallRecord.Headers = new HashMap<>();
    try {
        if (request.header("Content-Type") != null) {
            networkCallRecord.Headers.put("Content-Type", request.header("Content-Type"));
        }
        if (request.header("x-ms-version") != null) {
            networkCallRecord.Headers.put("x-ms-version", request.header("x-ms-version"));
        }
        if (request.header("User-Agent") != null) {
            networkCallRecord.Headers.put("User-Agent", request.header("User-Agent"));
        }
        networkCallRecord.Method = request.method();
        networkCallRecord.Uri = applyRegex(request.url().toString().replaceAll("\\?$", ""));
    } catch (Exception e) {
    }
    Response response = chain.proceed(chain.request());
    networkCallRecord.Response = new HashMap<>();
    try {
        networkCallRecord.Response.put("StatusCode", Integer.toString(response.code()));
        extractResponseData(networkCallRecord.Response, response);
        // remove pre-added header if this is a waiting or redirection
        if (networkCallRecord.Response.get("Body").contains("<Status>InProgress</Status>") || Integer.parseInt(networkCallRecord.Response.get("StatusCode")) == HttpStatus.SC_TEMPORARY_REDIRECT) {
        } else {
            synchronized (testRecord.networkCallRecords) {
                testRecord.networkCallRecords.add(networkCallRecord);
            }
        }
    } catch (Exception e) {
    }
    return response;
}
Also used : Response(okhttp3.Response) Request(okhttp3.Request) IOException(java.io.IOException)

Example 92 with Header

use of okhttp3.internal.http2.Header in project WordPress-Android by wordpress-mobile.

the class GravatarApi method createClient.

private static OkHttpClient createClient(final String accessToken) {
    OkHttpClient.Builder httpClientBuilder = new OkHttpClient.Builder();
    //// uncomment the following line to add logcat logging
    //httpClientBuilder.addInterceptor(new HttpLoggingInterceptor().setLevel(HttpLoggingInterceptor.Level.BODY));
    // add oAuth token usage
    httpClientBuilder.addInterceptor(new Interceptor() {

        @Override
        public Response intercept(Interceptor.Chain chain) throws IOException {
            Request original = chain.request();
            Request.Builder requestBuilder = original.newBuilder().header("Authorization", "Bearer " + accessToken).method(original.method(), original.body());
            Request request = requestBuilder.build();
            return chain.proceed(request);
        }
    });
    return httpClientBuilder.build();
}
Also used : Response(okhttp3.Response) OkHttpClient(okhttp3.OkHttpClient) Request(okhttp3.Request) IOException(java.io.IOException) Interceptor(okhttp3.Interceptor)

Example 93 with Header

use of okhttp3.internal.http2.Header in project Retrofit-Android-Basic by basil2style.

the class ServiceGenerator method createService.

public static <S> S createService(Class<S> serviceClass, final String authToken) {
    if (authToken != null) {
        httpClient.interceptors().add(new Interceptor() {

            @Override
            public okhttp3.Response intercept(Interceptor.Chain chain) throws IOException {
                Request original = chain.request();
                // Request customization: add request headers
                Request.Builder requestBuilder = original.newBuilder().header("Authorization", authToken).method(original.method(), original.body());
                Request request = requestBuilder.build();
                return chain.proceed(request);
            }
        });
    }
    OkHttpClient client = httpClient.build();
    Retrofit retrofit = builder.client(client).build();
    return retrofit.create(serviceClass);
}
Also used : Retrofit(retrofit2.Retrofit) OkHttpClient(okhttp3.OkHttpClient) Request(okhttp3.Request) IOException(java.io.IOException) Interceptor(okhttp3.Interceptor)

Example 94 with Header

use of okhttp3.internal.http2.Header in project smartmodule by carozhu.

the class OkHttpUtils method getInstance.

public static OkHttpClient.Builder getInstance(final Context context) {
    mcontext = context;
    if (singleton == null) {
        synchronized (OkHttpUtils.class) {
            if (singleton == null) {
                singleton = new OkHttpClient().newBuilder();
                singleton.connectTimeout(HTTP_CONNECT_TIMEOUT, TimeUnit.SECONDS);
                singleton.readTimeout(HTTP_READ_TIMEOUT, TimeUnit.SECONDS);
                //okhttp设置错误重新连接
                singleton.retryOnConnectionFailure(true);
                //singleton.addNetworkInterceptor(REWRITE_RESPONSE_INTERCEPTOR);
                //singleton.addInterceptor(REWRITE_RESPONSE_INTERCEPTOR_OFFLINE);
                File cacheDir = new File(context.getCacheDir(), RESPONSE_CACHE);
                singleton.cache(new Cache(cacheDir, RESPONSE_CACHE_SIZE));
                //or use
                //Cache cache = new Cache(context.getCacheDir(), RESPONSE_CACHE_SIZE);
                //singleton.cache(cache);
                //singleton.interceptors().add(new ReceivedCookiesInterceptor(context));
                //singleton.interceptors().add(new AddCookiesInterceptor(context));
                //singleton.addNetworkInterceptor(mTokenInterceptor)
                //addNetworkInterceptor 让所有网络请求都附上你的拦截器,
                //如这里设置了一个 token 拦截器,就是在所有网络请求的 header 加上 token 参数,下面会稍微讲一下这个内容
                HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor();
                interceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
                singleton.addInterceptor(interceptor);
                if (ConfigureManager.getConfigureManager().isOkhttpCache()) {
                    //设置缓存路径
                    File httpCacheDirectory = new File(context.getCacheDir(), "httpCacheResponses");
                    //设置缓存 100M
                    Cache cache = new Cache(httpCacheDirectory, RESPONSE_CACHE_SIZE);
                    Interceptor myinterceptor = new Interceptor() {

                        @Override
                        public Response intercept(Chain chain) throws IOException {
                            Request request = chain.request();
                            Log.i(TAG, "request=" + request);
                            if (!NetworkUtil.isNetworkAvailable(context)) {
                                request = request.newBuilder().cacheControl(CacheControl.FORCE_CACHE).build();
                                Log.i(TAG, "no network");
                            }
                            Response response = chain.proceed(request);
                            if (NetworkUtil.isNetworkAvailable(context)) {
                                // 有网络时 设置缓存超时时间0个小时
                                int maxAge = 0 * 60;
                                Log.i(TAG, "has network maxAge=" + maxAge);
                                response.newBuilder().header("Cache-Control", "public, max-age=" + maxAge).removeHeader(// 清除头信息,因为服务器如果不支持,会返回一些干扰信息,不清除下面无法生效
                                "Pragma").build();
                            } else {
                                Log.i(TAG, "network error");
                                // 无网络时,设置超时为4周
                                int maxStale = 60 * 60 * 24 * 28;
                                Log.i(TAG, "has maxStale=" + maxStale);
                                response.newBuilder().header("Cache-Control", "public, only-if-cached, max-stale=" + maxStale).removeHeader("Pragma").build();
                                Log.i(TAG, "response build maxStale=" + maxStale);
                            }
                            return response;
                        }
                    };
                    singleton.addInterceptor(myinterceptor).cache(cache);
                }
            }
        }
    }
    return singleton;
}
Also used : Response(okhttp3.Response) OkHttpClient(okhttp3.OkHttpClient) Request(okhttp3.Request) File(java.io.File) Interceptor(okhttp3.Interceptor) HttpLoggingInterceptor(okhttp3.logging.HttpLoggingInterceptor) HttpLoggingInterceptor(okhttp3.logging.HttpLoggingInterceptor) Cache(okhttp3.Cache)

Example 95 with Header

use of okhttp3.internal.http2.Header in project chefly_android by chef-ly.

the class HttpConnection method downloadFromFeed.

public String downloadFromFeed(RequestMethod requestPackage) throws IOException {
    String address = requestPackage.getEndpoint();
    String encodedParams = requestPackage.getEncodedParams();
    //check for get request
    if (requestPackage.getMethod().equals("GET") && encodedParams.length() > 0) {
        address = String.format("%s?%s", address, encodedParams);
    }
    //create request object
    OkHttpClient client;
    if (BuildConfig.DEBUG) {
        client = new OkHttpClient.Builder().addInterceptor(new LoggingInterceptor()).build();
    } else {
        client = new OkHttpClient();
    }
    Request.Builder requestBuilder = new Request.Builder().url(address);
    //  Add required HTTP Header
    Map<String, String> headers = requestPackage.getHeaders();
    if (headers.size() > 0) {
        for (String k : headers.keySet()) {
            if (k != null) {
                requestBuilder.addHeader(k, headers.get(k));
            }
        }
    }
    //check for post request
    if (requestPackage.getMethod().equals("POST")) {
        //extract the parameters from the request
        //get the reference of the pair
        Map<String, String> params = requestPackage.getParams();
        String msg = "";
        if (params.size() == 1) {
            for (String key : params.keySet()) msg = params.get(key);
        } else {
            JSONObject parameter = new JSONObject(params);
            msg = parameter.toString();
        }
        RequestBody body = RequestBody.create(JSON, msg);
        Log.d(TAG, msg);
        requestBuilder.post(body);
        //requestBuilder.addHeader("content-type", "application/json; charset=utf-8");
        requestBuilder.addHeader("content-type", "application/x-www-form-urlencoded");
    }
    Request request = requestBuilder.build();
    //get response with the use of the method newCall
    //synchronous request
    Response response = client.newCall(request).execute();
    //check if the request is successful
    if (response.isSuccessful()) {
        this.statusMessage = response.message();
        return response.body().string();
    } else {
        Log.d(TAG, response.toString());
        throw new IOException("Exception: response code " + response.code());
    }
}
Also used : Response(okhttp3.Response) OkHttpClient(okhttp3.OkHttpClient) JSONObject(org.json.JSONObject) Request(okhttp3.Request) IOException(java.io.IOException) RequestBody(okhttp3.RequestBody)

Aggregations

Test (org.junit.Test)88 MockResponse (okhttp3.mockwebserver.MockResponse)82 Request (okhttp3.Request)70 RecordedRequest (okhttp3.mockwebserver.RecordedRequest)56 Response (okhttp3.Response)52 IOException (java.io.IOException)50 RequestBody (okhttp3.RequestBody)24 Call (okhttp3.Call)20 OkHttpClient (okhttp3.OkHttpClient)20 Callback (okhttp3.Callback)19 Interceptor (okhttp3.Interceptor)12 FormBody (okhttp3.FormBody)11 ResponseBody (okhttp3.ResponseBody)11 ArrayList (java.util.ArrayList)10 Map (java.util.Map)10 Headers (okhttp3.Headers)10 List (java.util.List)9 JSONObject (org.json.JSONObject)7 File (java.io.File)6 HashMap (java.util.HashMap)6