parent
d9c728f310
commit
f21ea828e0
@ -0,0 +1,58 @@
|
||||
import 'package:dio/dio.dart';
|
||||
|
||||
enum ContentType {
|
||||
TEXT_PLAIN,
|
||||
TEXT_HTML,
|
||||
TEXT_CSS,
|
||||
TEXT_JS,
|
||||
IMAGE,
|
||||
AUDIO,
|
||||
VIDEO,
|
||||
JSON,
|
||||
UNCATCH,
|
||||
}
|
||||
|
||||
class DioParser {
|
||||
Response _response;
|
||||
DioParser(Response response) {
|
||||
_response = response;
|
||||
}
|
||||
RequestOptions get request => _response.request;
|
||||
Response get response => _response;
|
||||
ContentType get type {
|
||||
String _ctype = response.headers.map['content-type'].first;
|
||||
switch (_ctype) {
|
||||
case 'text/plain':
|
||||
return ContentType.TEXT_PLAIN;
|
||||
case 'text/html':
|
||||
return ContentType.TEXT_HTML;
|
||||
case 'text/css':
|
||||
return ContentType.TEXT_CSS;
|
||||
case 'text/javascript':
|
||||
return ContentType.TEXT_JS;
|
||||
case 'application/json':
|
||||
return ContentType.JSON;
|
||||
}
|
||||
if (_ctype.contains('image/')) return ContentType.IMAGE;
|
||||
if (_ctype.contains('audio/')) return ContentType.AUDIO;
|
||||
if (_ctype.contains('video/'))
|
||||
return ContentType.VIDEO;
|
||||
else
|
||||
return ContentType.UNCATCH;
|
||||
}
|
||||
|
||||
String get highlight {
|
||||
switch (type) {
|
||||
case ContentType.TEXT_HTML:
|
||||
return 'html';
|
||||
case ContentType.TEXT_CSS:
|
||||
return 'css';
|
||||
case ContentType.TEXT_JS:
|
||||
return 'javascript';
|
||||
case ContentType.JSON:
|
||||
return 'json';
|
||||
default:
|
||||
return '';
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in new issue