Ион. С контекстом
load("http://example.com/api/tweets")*.as(new TypeToken<List>(){})
.setCallback(new FutureCallback<List>() {**
@Override*
public void onCompleted(Exception e, List tweets) {
// chirp chirp
}
});
}}
«Хотите знать, почему ваше приложение работает медленно? Ион позволяет вам вести глобальный и на уровне запросов логинг одновременно».
Чтобы включить его в глобальном масштабе:
Ion.getDefault(getContext()).configure().setLogging("MyLogs", Log.DEBUG);
Или только для одного запроса:
*.load("http://example.com/thing.json")*
*.setLogging("MyLogs", Log.DEBUG)*
*.asJsonObject();***
Пример лога:
D/MyLogs(23153): (0 ms) http://example.com/thing.json: Executing request.
D/MyLogs(23153): (106 ms) http://example.com/thing.json: Connecting socket
D/MyLogs(23153): (2985 ms) http://example.com/thing.json: Response is not cacheable
D/MyLogs(23153): (3003 ms) http://example.com/thing.json: Connection successful
#### Группы запросов
По умолчанию Ион автоматически объединяет все запросы с другими запросами в одну группу. Вы можете легко отменить все ожидающие запросы, используя вызов *cancelAll(Activity)*.
```Future<JsonObject> json1 = Ion.with(activity, "http://example.com/test.json").asJsonObject();*
Future<JsonObject> json2 = Ion.with(activity, "http://example.com/test2.json").asJsonObject();**
@Override*
protected void onStop() {*
Ion.getDefault(activity).cancelAll(activity);*
super.onStop();*
}*
Ион также позволяет помечать запросы как принадлежащие к определённой группе, чтобы позже можно было легко их отменить:
```Object jsonGroup = new Object();*
Object imageGroup = new Object();**
Future<JsonObject> json1 = Ion.with(activity)*
.load("http://example.com/test.json")*
group(jsonGroup)*
asJsonObject();*
Future<JsonObject> json2 = Ion.with(activity)*
.load("http://example.com/test2.json")*
group(jsonGroup)*
asJsonObject();*
Future<Bitmap> image1 = Ion.with(activity)*
.load("http://example.com/test.png")*
group(imageGroup)*
intoImageView(imageView1);*
Future<Bitmap> image2 = Ion.with(activity)*
.load("http://example.com/test2.png")*
group(imageGroup)*
intoImageView(imageView2);*
Позже... чтобы отменить только загрузку изображений:*
Ion.getDefault(activity).cancelAll(imageGroup);*
#### Прокси-серверы (например, Charles Proxy)*
Настройки прокси-сервера можно включить для всех запросов или для каждого запроса отдельно.*
Включить прокси для всех запросов:*
```Ion.getDefault(context).configure().proxy("mycomputer", 8888);*
или... для конкретных запросов:*
```Ion.with(context)*
.load("http://example.com/proxied.html")*
proxy("mycomputer", 8888)*
getString();*
Использование прокси-сервера на вашем компьютере с Charles и запрос прокси будет очень полезным для отладки.*
#### Просмотр полученных заголовков*
Операции Иона возвращают *ResponseFuture*, который предоставляет доступ к свойствам ответа через объект *response*. Объект *response* содержит заголовки и результат.*
```Ion.with(getContext())*
.load("http://example.com/test.txt")*
asString()*
withResponse()*
setCallback(new FutureCallback<Response<String>>() {*
@Override*
public void onCompleted(Exception e, Response<String> result) {*
System.out.println(result.getHeaders().code());*
System.out.println(result.getResult());*
}});*
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )