1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/firefly_osc-RestVolley

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
README.md 8.4 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 26.11.2024 05:03 c1221a7

RestVolley


Движок HTTP-запросов на основе [Volley] и [OkHttp], предлагающий альтернативу Apache HttpClient. Поддерживает загрузку изображений, запросы к RESTful API и скачивание файлов. [ПОДРОБНЕЕ]

Зависимости


Бинарный файл доступен на jcenter

Зависимость от Maven:

<dependency>
  <groupId>com.hujiang.restvolley</groupId>
  <artifactId>restvolley</artifactId>
  <version>1.0.1</version>
</dependency>

или Gradle:

compile 'com.hujiang.restvolley:restvolley:1.0.1'

Функции


Запросы к RESTful API

RestVolley упрощает запросы к RESTful API. Поддерживаются большинство методов HTTP-запроса, таких как GET,HEAD,POST,DELETE,OPTIONS,PATCH,PUT,TRACE.

GET POST DELETE PUT HEAD PATCH OPTIONS TRACE
Кэшируемый Да Нет Нет Нет Да Нет Да Да
Требуется тело Нет Да Нет Да Нет Да Нет Нет
Разрешает тело Да
  • Создание запроса
//Get запрос
new GetRequest(context).url("").execute(String.class, new RestVolleyCallback<String>());
//Post запрос
new PostRequest(context).url("").execute(String.class, new RestVolleyCallback<String>());
//Delete запрос
new DeleteRequest(context).url("").execute(String.class, new RestVolleyCallback<String>());
//Put запрос
new PutRequest(context).url("").execute(String.class, new RestVolleyCallback<String>());
//Head запрос
new HeadRequest(context).url("").execute(String.class, new RestVolleyCallback<String>());
//Patch запрос
new PatchRequest(context).url("").execute(String.class, new RestVolleyCallback<String>());
//Options запрос
new OptionsRequest(context).url("").execute(String.class, new RestVolleyCallback<String>());
//Trace запрос
new TraceRequest(context).url("").execute(String.class, new RestVolleyCallback<String>());
  • Установка параметров HTTP-запроса: заголовок, параметры URL, тело запроса, тип содержимого, кодировка
new GetRequest(context).url("")
    .setTag("")
    .setRetryPolicy(new DefaultRetryPolicy())
    .setShouldCache(true)
    .setPriority(Priority.Normal)
    //default is "application/json"
    .setContentType("application/json")
    //default is "UTF-8"
    .setCharset("UTF-8")
    .addHeader("userId", "12345")
    .addHeaders(map)
    .setUserAgent("")
    .addParams(key, value)
    .setCacheEntry(...)
    .execute(.....);
  • Кэширование
//по умолчанию false
setShouldCache(true);
setCacheEntry(...)
  • RetryPolicy
setRetryPolicy(new DefaultRetryPolicy())
  • Priority
//по умолчанию Priority.Normal
setPriority(Priority.Normal)
  • ContentType и Charset
    //по умолчанию "application/json"
    setContentType("application/json")
    //по умолчанию "UTF-8"
    setCharset("UTF-8")
  • Тег
setTag(tag);
  • UserAgent
setUserAgent("");
  • Тайм-аут
setConnectTimeout(...);
setReadTimeout(...);
setWriteTimeout(...);

//для всех таймаутов
setTimeout(...);
  • Заголовок
addHeader(key, value);
//или
addHeaders(map);
  • Параметры
//добавление параметров URL
addParams(key, value);

//для post/put/patch или delete
addParams(key, file);
addParams(key, inputstream);
  • Тело и HttpEntity
//тело и HttpEntity для post/put/patch или delete
setBody(byte[] bytes);
setBody(HttpEntity httpEntity);
setBody(String s);

//преобразование параметров в объект данных формы.
paramsToFormEntity();
//преобразование параметров в JSON-объект.
paramsToJsonEntity();
//преобразование параметров в многочастный объект.
paramsToMultipartEntity();
  • Выполнение и syncExecute
//асинхронное выполнение с обратным вызовом.
new GetRequest(context).url().execute(String.class, new RestVolleyCallback<String>());

//синхронное выполнение.
RestVolleyResponse<String> response = new GetRequest(context).url().syncExecute(String.class);
  • Запрос с новым RequestEngine

Рекомендуется использовать стандартный RequestEngine, только если запросу требуется прокси.

//
new GetRequest(context).setRequestEngine(...);

//создать новый RequestEngine
RestVolley.newRequestEngine(context, engineTag);

Загрузка изображений

RestVolleyImageLoader имеет кэш памяти и дисковый кэш, поддерживает не только сетевые запросы изображений, но Запрос ресурса изображения Uri в ContentProvider, схемы Uri:

http/https http://www.google.com/xxx/xxx.png
file file:///mnt/sdcard/xxx.png
assets assets://assets_default.png
res “drawable://” + R.drawable.drawable_default или "drawable://" + R.raw.defaut
ContentProvider content://media/external/images/media/27916

Настройка глобального конфига:

RestVolleyImageLoader.instance(context).setConfig(ImageLoaderGlobalConfig cfg);

Создание ImageLoaderGlobalConfig:

ImageLoaderGlobalConfig.create().memCacheSize(..).diskCacheSize(..)
    .diskCacheDir(..).requestEngine(..);

Создание ImageLoadOption:

ImageLoadOption.create().defaultImgResId(..)
    .errorImgResId(..)
    .imgLoadAnimation(..)
    .scaleType(..)
    .maxWidth(..)
    .maxHeight(..)
    .cacheEnable(..);

Отображение изображения:

RestVolleyImageLoader.instance(context).displayImage(uri, imageView);
//
RestVolleyImageLoader.instance(context)
    .displayImage(uri, imageView, imageLoadOption);

Загрузка изображения:

RestVolleyImageLoader.instance(context).loadImage(uri, ImageListener);
//
RestVolleyImageLoader.instance(context).loadImage(uri, ImageLoadOption, ImageListener);

Синхронная загрузка изображения:

RestVolleyImageLoader.instance(context).syncLoadImage(String uri);
//
RestVolleyImageLoader.instance(context).syncLoadImage(uri, ImageLoadOption);

Другие методы:

RestVolleyImageLoader.instance(context).isCached(...);
RestVolleyImageLoader.instance(context).removeCache(...);

Загрузка файла

new RestVolleyDownload(context)
    .url(url)
    .addHeader(key, value)
    .tag(tag)
    .setProxy(...)
    .setTimeout(...)
    .setIsAppend(..)
    .download(......)
    //или
    .syncdownload(....)

Простая статическая загрузка:

RestVolleyDownload.download(....)
//или
RestVolleyDownload.syncDownload(....)

Отправка данных

Использование RestVolleyUpload как PostRequest:

new RestVolleyUpload(context).url(..).execute(...);
//или
new RestVolleyUpload(context).url(..).syncExecute(...);

Лицензия


Copyright (C) 2016 Hujiang, Inc.
Copyright (C) 2014 Xiaoke Zhang.
Copyright (C) 2011 The Android Open Source Project.
Copyright (C) 2016 Square, Inc.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

Журнал изменений


  • 1.0.1

    1. Исправлена ошибка bintrayUpload.
  • 1.0.0

    1. Выпущен для запросов к REST API, загрузки и выгрузки изображений, скачивания и отправки данных.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/firefly_osc-RestVolley.git
git@api.gitlife.ru:oschina-mirror/firefly_osc-RestVolley.git
oschina-mirror
firefly_osc-RestVolley
firefly_osc-RestVolley
master