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

OSCHINA-MIRROR/HarmonyOS-tpc-okhttp-OkGo

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Это зеркальный репозиторий, синхронизируется ежедневно с исходного репозитория.
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Один из основанных на OkHttp стандартных RESTful-фреймворков для сети

Структура проекта полностью оптимизирована Поддержка RxJava Поддержка RxJava2 Поддержка пользовательских стратегий кэширования Управление загрузкой Управление выгрузкой>

Интеграция конфигурации

Метод один:

Импортируйте okgo,okrx,okrx2,okserver в свой проект в виде модулей по мере необходимости; и используйте следующий способ зависимости:
     implementation project(':okgo')
     implementation project(':okrx')
     implementation project(':okrx2')
     implementation project(':okserver') 
Кроме того, в базовом модуле okgo необходимо добавить зависимость ohos.jar, иначе компиляция не пройдёт, формат следующий:
api files('D:\\HOSDEMO\\ohosjar\\ohos.jar')
Это означает, что вам нужно скопировать SDK ohos.jar на диск D, а затем заменить путь на фактический путь к ohos.jar.

Способ два:

Скомпилируйте модуль для создания jar-файла и поместите его в папку libs.
Шаги: нажмите «Gradle» справа, выберите соответствующий модуль; например, okgo, затем нажмите «Tasks», чтобы развернуть, и нажмите «Jar», чтобы создать;
     сгенерированный jar-файл находится в папке build\libs соответствующего модуля.
Импорт: поместите сгенерированный файл jar в каталог libs соответствующего entry или модуля.

Метод три:

Добавьте центральный репозиторий
allprojects{
    repositories{
        mavenCentral()
    }
}
В соответствии с потребностями добавьте следующую конфигурацию зависимостей:
implementation 'io.openharmony.tpc.thirdlib:okgo:1.0.2' 
implementation 'io.openharmony.tpc.thirdlib:okrx:1.0.2' 
implementation 'io.openharmony.tpc.thirdlib:okrx2:1.0.2' 
implementation 'io.openharmony.tpc.thirdlib:okserver:1.0.2'

Использование jar-пакетов

При использовании okgo.jar необходимо самостоятельно зависеть от okhttp3
При использовании okrx.jar требуется зависимость от rxjava
При использовании okrx2.jar требуется зависимость от rxjava2
Конкретные версии сторонних библиотек см. в конфигурации зависимостей entry.

Не забудьте добавить сетевые разрешения (другие настройки инициализации см. в OkGoApp.java entry)

"reqPermissions": [
      {
        "name": "ohos.permission.INTERNET"
      }
    ]

Основные функции OkGo

Основные запросы get, post, put, delete, head, options, trace, patch
Поддержка upString, upJson, upBytes, upFile и других методов загрузки определённых данных
Поддерживает загрузку одного файла с одним ключом, а также нескольких файлов с одним ключом или несколькими файлами и параметрами одновременно
Загрузка больших файлов и загрузка с обратным вызовом прогресса
Загрузка больших файлов и обратный вызов прогресса загрузки
Поддержка автоматического управления cookie и настраиваемых стратегий управления cookie
Поддержка стратегий кэширования, поддерживающих не только протоколы HTTP-кэширования, но и настраиваемые стратегии кэширования
Поддержка перенаправления
Поддержка настраиваемого количества повторных попыток автоматического переподключения
Поддержка цепных вызовов
Поддержка HTTPS-доступа, поддержка двусторонней аутентификации
Поддержка отмены запросов по тегам, также можно отменить все запросы
Поддержка пользовательского обратного вызова, автоматическая обработка сетевых данных

1. Запрос всех конфигураций

Важно: что бы вы ни делали, первая строка дженериков должна быть добавлена!

Обратите внимание на следующие моменты:

Здесь демонстрируется обычный запрос со всеми возможными конфигурациями, в реальных условиях нет необходимости настраивать так много, просто выберите то, что вам подходит.
Первая строка дженерика должна быть особенно внимательной, это означает тип данных сетевого запроса, который должен быть указан, иначе данные не могут быть проанализированы.
.post(url): этот метод представляет текущий запрос как запрос post, конечно, есть 8 типов запросов GET, HEAD, OPTIONS, POST, PUT, DELETE, PATCH, TRACE, которые вы можете изменить только имя метода.
.params(): при добавлении параметров последний параметр isReplace является необязательным параметром, по умолчанию — true, что означает замену ранее добавленных параметров.
.tag(this): тег запроса используется для идентификации текущего запроса, что удобно для последующей отмены соответствующего запроса. Если вам не нужно отменять запрос, вы также можете не устанавливать его.
.isMultipart(): этот метод указывает, следует ли принудительно использовать multipart/form-data для загрузки формы, поскольку, когда в этом фреймворке есть файлы, независимо от того, установлен ли этот параметр, по умолчанию используется multipart/form-data формат загрузки, но если параметры не содержат файлов, по умолчанию используется application/x-www-form-urlencoded формат загрузки. Если ваш сервер требует загрузки файлов независимо от наличия файлов, используйте этот параметр для установки значения true.
.isSpliceUrl(): этот метод означает, будет ли автоматически добавляться к url после добавления параметров params. По умолчанию значение равно false, что не добавляется. Обычно методы post и put имеют тело запроса, которое должно быть помещено в тело запроса, а не в url, но некоторые серверы не очень стандартизированы, и параметры должны быть переданы как в url, так и в теле запроса, тогда вы можете использовать этот параметр. Он автоматически добавит все параметры, переданные методом .params(), в конец url.
.retryCount(): этот метод является конфигурацией количества повторных подключений по тайм-ауту, которую также можно установить при глобальной инициализации, по умолчанию используется глобальная конфигурация, то есть 3 раза, вы также можете настроить здесь для этого запроса специальное количество повторных подключений, которое не повлияет на количество повторных подключений других запросов.
.cacheKey(). cacheTime(). cacheMode(): эти три параметра связаны с конфигурацией кэша, пожалуйста, обратитесь к подробному описанию кэша.
.headers(): этот метод передаёт необходимые заголовки запроса сервера, если вы не знаете, что такое заголовок запроса, см. ссылку на вики на странице http-протокола.
.params(). addUrlParams(). addFileParams(). addFileWrapperParams(): здесь поддерживается передача одного ключа и нескольких текстовых параметров, а также одного ключа и нескольких файловых параметров. Пожалуйста, обратитесь к ссылке на http-протокол для получения подробной информации.
Кроме того, каждый запрос имеет метод .client(), который может передавать объект OkHttpClient, представляющий текущий запрос, использующий переданный извне объект OkHttpClient. Другие запросы остаются неизменными. Тогда вы можете настроить OkHttpClient так, как хотите, например, изменить время ожидания, добавить перехватчик и т. д.
Особое внимание: если ваш текущий запрос использует переданный вами объект OkHttpClient, то при вызове OkGo.getInstance().cancelTag(tag) этот запрос не может быть отменён, потому что OkGo может только отменить запрос, используя глобальную конфигурацию, не зная, используете ли вы свой собственный OkHttpClient. Если вы должны отменить его, вы можете использовать перегруженный метод, предоставляемый OkGo, для просмотра ниже.

2. Введение в объект Response

Сначала посмотрите на поля объекта Response: этот объект имеет 5 полей, которые представляют следующее значение:

body: текущие возвращаемые данные, T — это универсальный тип данных. Используйте метод body() для получения значения. Если запрос выполнен успешно, обратный вызов onSuccess() возвращает данные после анализа convertResponse(). Если возникает исключение, вызывается обратный вызов onError(), а значение поля равно null.
throwable: если возникает исключение, вызывается onError() и поле сохраняет текущую информацию об исключении. Если запрос успешен, вызывается onSuccess(), а поле равно null. Используйте метод getException() для получения значения.
isFromCache: указывает, откуда поступают данные, true: из кеша, false: из сети. Используйте метод isFromCache() для получения значения.
rawCall: представляет истинный объект okhttp3.Call текущего запроса. Используйте метод getRawCall() для получения значения.
rawResponse: представляет истинный ответ okhttp3.Response сервера текущего запроса. Обратите внимание, что если данные поступают из кеша, объект равен null, если они поступают из сети, объект имеет значение. Используйте метод getRawResponse() для получения значения.
Кроме того, у этого объекта есть несколько методов:

code(): код состояния HTTP, если данные поступают из сети, независимо от успеха или неудачи, значение всегда является истинным кодом состояния, если данные поступают из кэша, значение постоянно равно -1.
message(): описание кода состояния HTTP, если данные поступают из сети, независимо от успеха или неудачи, значением всегда является истинное описание, если данные поступают из кэша, значением постоянно является null.
headers(): заголовки ответа сервера, если данные поступают из сети, независимо от успеха или неудачи, значением всегда являются истинные заголовки, если данные поступают из кэша, значением постоянно является null.
isSuccessful(): был ли текущий запрос успешным, суждение основано на том, произошло ли исключение.

3. Основные запросы

Важно: что бы вы ни делали, первая строка дженериков должна быть добавлена!

Тогда мы не можем писать так много каждый раз, когда делаем запрос. Здесь вы можете видеть, что для простого запроса достаточно написать так.
4. Запрос Bitmap
Если вы знаете, что ваши данные запроса являются изображениями, вы можете использовать такой метод.
5. Базовая загрузка файлов
Если вам нужно загрузить файл, вы можете написать это так.

FileCallback имеет три перегруженных конструктора, а именно:

Комментарии ( 0 )

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

Введение

Описание недоступно Расширить Свернуть
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://gitlife.ru/oschina-mirror/HarmonyOS-tpc-okhttp-OkGo.git
git@gitlife.ru:oschina-mirror/HarmonyOS-tpc-okhttp-OkGo.git
oschina-mirror
HarmonyOS-tpc-okhttp-OkGo
HarmonyOS-tpc-okhttp-OkGo
master