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;
}
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;
}
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);
}
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);
}
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);
}
Aggregations