httpDeliveryFetch function
DeliveryFetch
httpDeliveryFetch({
- Client? client,
- Duration timeout = const Duration(seconds: 15),
package:http 기반 DeliveryFetch. 웹·모바일·데스크톱·서버 모두에서 동작한다.
client를 넘기면 그대로 쓴다(테스트 주입, 커스텀 인터셉터, 연결 재사용).
넘기지 않으면 내부에서 하나를 만들어 이 어댑터가 사는 동안 재사용한다.
Implementation
DeliveryFetch httpDeliveryFetch({
http.Client? client,
Duration timeout = const Duration(seconds: 15),
}) {
final c = client ?? http.Client();
return (String url, {String? ifNoneMatch}) async {
final response = await c
.get(
Uri.parse(url),
headers: {
if (ifNoneMatch != null) 'if-none-match': ifNoneMatch,
},
)
.timeout(timeout);
// package:http는 응답 헤더 키를 소문자로 정규화한다.
return DeliveryResponse(response.statusCode, response.body, etag: response.headers['etag']);
};
}