Search in sources :

Example 21 with OkHttpClient

use of okhttp3.OkHttpClient in project muzei by romannurik.

the class FeaturedArtSource method fetchJsonObject.

private JSONObject fetchJsonObject(final String url) throws IOException, JSONException {
    OkHttpClient client = new OkHttpClient.Builder().build();
    Request request = new Request.Builder().url(url).build();
    String json = client.newCall(request).execute().body().string();
    JSONTokener tokener = new JSONTokener(json);
    Object val = tokener.nextValue();
    if (!(val instanceof JSONObject)) {
        throw new JSONException("Expected JSON object.");
    }
    return (JSONObject) val;
}
Also used : JSONTokener(org.json.JSONTokener) OkHttpClient(okhttp3.OkHttpClient) JSONObject(org.json.JSONObject) Request(okhttp3.Request) JSONException(org.json.JSONException) JSONObject(org.json.JSONObject)

Example 22 with OkHttpClient

use of okhttp3.OkHttpClient in project muzei by romannurik.

the class DownloadArtworkTask method openUri.

private InputStream openUri(Context context, Uri uri) throws IOException {
    if (uri == null) {
        throw new IllegalArgumentException("Uri cannot be empty");
    }
    String scheme = uri.getScheme();
    if (scheme == null) {
        throw new IOException("Uri had no scheme");
    }
    InputStream in = null;
    if ("content".equals(scheme)) {
        try {
            in = context.getContentResolver().openInputStream(uri);
        } catch (SecurityException e) {
            throw new FileNotFoundException("No access to " + uri + ": " + e.toString());
        }
    } else if ("file".equals(scheme)) {
        List<String> segments = uri.getPathSegments();
        if (segments != null && segments.size() > 1 && "android_asset".equals(segments.get(0))) {
            AssetManager assetManager = context.getAssets();
            StringBuilder assetPath = new StringBuilder();
            for (int i = 1; i < segments.size(); i++) {
                if (i > 1) {
                    assetPath.append("/");
                }
                assetPath.append(segments.get(i));
            }
            in = assetManager.open(assetPath.toString());
        } else {
            in = new FileInputStream(new File(uri.getPath()));
        }
    } else if ("http".equals(scheme) || "https".equals(scheme)) {
        OkHttpClient client = OkHttpClientFactory.getNewOkHttpsSafeClient();
        Request request;
        request = new Request.Builder().url(new URL(uri.toString())).build();
        Response response = client.newCall(request).execute();
        int responseCode = response.code();
        if (!(responseCode >= 200 && responseCode < 300)) {
            throw new IOException("HTTP error response " + responseCode);
        }
        in = response.body().byteStream();
    }
    if (in == null) {
        throw new FileNotFoundException("Null input stream for URI: " + uri);
    }
    return in;
}
Also used : AssetManager(android.content.res.AssetManager) OkHttpClient(okhttp3.OkHttpClient) FileInputStream(java.io.FileInputStream) InputStream(java.io.InputStream) FileNotFoundException(java.io.FileNotFoundException) Request(okhttp3.Request) IOException(java.io.IOException) FileInputStream(java.io.FileInputStream) URL(java.net.URL) Response(okhttp3.Response) List(java.util.List) File(java.io.File)

Example 23 with OkHttpClient

use of okhttp3.OkHttpClient in project muzei by romannurik.

the class FiveHundredPxExampleArtSource method onTryUpdate.

@Override
protected void onTryUpdate(@UpdateReason int reason) throws RetryException {
    String currentToken = (getCurrentArtwork() != null) ? getCurrentArtwork().getToken() : null;
    OkHttpClient okHttpClient = new OkHttpClient.Builder().addInterceptor(new Interceptor() {

        @Override
        public Response intercept(final Chain chain) throws IOException {
            Request request = chain.request();
            HttpUrl url = request.url().newBuilder().addQueryParameter("consumer_key", Config.CONSUMER_KEY).build();
            request = request.newBuilder().url(url).build();
            return chain.proceed(request);
        }
    }).build();
    Retrofit retrofit = new Retrofit.Builder().baseUrl("https://api.500px.com/").client(okHttpClient).addConverterFactory(GsonConverterFactory.create()).build();
    FiveHundredPxService service = retrofit.create(FiveHundredPxService.class);
    PhotosResponse response;
    try {
        response = service.getPopularPhotos().execute().body();
    } catch (IOException e) {
        Log.w(TAG, "Error reading 500px response", e);
        throw new RetryException();
    }
    if (response == null || response.photos == null) {
        throw new RetryException();
    }
    if (response.photos.size() == 0) {
        Log.w(TAG, "No photos returned from API.");
        scheduleUpdate(System.currentTimeMillis() + ROTATE_TIME_MILLIS);
        return;
    }
    Random random = new Random();
    Photo photo;
    String token;
    while (true) {
        photo = response.photos.get(random.nextInt(response.photos.size()));
        token = Integer.toString(photo.id);
        if (response.photos.size() <= 1 || !TextUtils.equals(token, currentToken)) {
            break;
        }
    }
    publishArtwork(new Artwork.Builder().title(photo.name).byline(photo.user.fullname).imageUri(Uri.parse(photo.image_url)).token(token).viewIntent(new Intent(Intent.ACTION_VIEW, Uri.parse("http://500px.com/photo/" + photo.id))).build());
    scheduleUpdate(System.currentTimeMillis() + ROTATE_TIME_MILLIS);
}
Also used : OkHttpClient(okhttp3.OkHttpClient) Artwork(com.google.android.apps.muzei.api.Artwork) Request(okhttp3.Request) Photo(com.example.muzei.examplesource500px.FiveHundredPxService.Photo) Intent(android.content.Intent) IOException(java.io.IOException) HttpUrl(okhttp3.HttpUrl) Retrofit(retrofit2.Retrofit) Random(java.util.Random) PhotosResponse(com.example.muzei.examplesource500px.FiveHundredPxService.PhotosResponse) Interceptor(okhttp3.Interceptor)

Example 24 with OkHttpClient

use of okhttp3.OkHttpClient in project plaid by nickbutcher.

the class DesignerNewsPrefs method createApi.

private void createApi() {
    final OkHttpClient client = new OkHttpClient.Builder().addInterceptor(new ClientAuthInterceptor(accessToken, BuildConfig.DESIGNER_NEWS_CLIENT_ID)).build();
    final Gson gson = new Gson();
    api = new Retrofit.Builder().baseUrl(DesignerNewsService.ENDPOINT).client(client).addConverterFactory(new DenvelopingConverter(gson)).addConverterFactory(GsonConverterFactory.create(gson)).build().create(DesignerNewsService.class);
}
Also used : Retrofit(retrofit2.Retrofit) OkHttpClient(okhttp3.OkHttpClient) ClientAuthInterceptor(io.plaidapp.data.api.ClientAuthInterceptor) DesignerNewsService(io.plaidapp.data.api.designernews.DesignerNewsService) Gson(com.google.gson.Gson) DenvelopingConverter(io.plaidapp.data.api.DenvelopingConverter)

Example 25 with OkHttpClient

use of okhttp3.OkHttpClient in project plaid by nickbutcher.

the class BaseDataManager method createProductHuntApi.

private void createProductHuntApi() {
    final OkHttpClient client = new OkHttpClient.Builder().addInterceptor(new AuthInterceptor(BuildConfig.PROCUCT_HUNT_DEVELOPER_TOKEN)).build();
    final Gson gson = new Gson();
    productHuntApi = new Retrofit.Builder().baseUrl(ProductHuntService.ENDPOINT).client(client).addConverterFactory(new DenvelopingConverter(gson)).addConverterFactory(GsonConverterFactory.create(gson)).build().create(ProductHuntService.class);
}
Also used : Retrofit(retrofit2.Retrofit) OkHttpClient(okhttp3.OkHttpClient) ProductHuntService(io.plaidapp.data.api.producthunt.ProductHuntService) AuthInterceptor(io.plaidapp.data.api.AuthInterceptor) Gson(com.google.gson.Gson) DenvelopingConverter(io.plaidapp.data.api.DenvelopingConverter)

Aggregations

OkHttpClient (okhttp3.OkHttpClient)632 Request (okhttp3.Request)359 Response (okhttp3.Response)302 IOException (java.io.IOException)196 Test (org.junit.Test)155 Call (okhttp3.Call)111 HttpLoggingInterceptor (okhttp3.logging.HttpLoggingInterceptor)67 Retrofit (retrofit2.Retrofit)65 File (java.io.File)56 Interceptor (okhttp3.Interceptor)45 RequestBody (okhttp3.RequestBody)39 ResponseBody (okhttp3.ResponseBody)38 Cache (okhttp3.Cache)36 Gson (com.google.gson.Gson)33 SSLSocketFactory (javax.net.ssl.SSLSocketFactory)33 Headers (okhttp3.Headers)33 Callback (okhttp3.Callback)32 GsonBuilder (com.google.gson.GsonBuilder)29 JSONObject (org.json.JSONObject)28 Provides (dagger.Provides)27