| // Copyright 2023 The Flutter Authors. All rights reserved. | |
| // Use of this source code is governed by a BSD-style license that can be | |
| // found in the LICENSE file. | |
| import 'dart:convert'; | |
| import 'dart:typed_data'; | |
| import 'package:http/http.dart'; | |
| class DebugHttpClient extends BaseClient { | |
| DebugHttpClient({ | |
| final Client? client, | |
| }) : _client = client ?? Client(); | |
| final Client _client; | |
| @override | |
| Future<StreamedResponse> send(final BaseRequest request) async { | |
| final StreamedResponse response = await _client.send(request); | |
| final Uint8List bytes = await response.stream.toBytes(); | |
| print(request.url); | |
| print(utf8.decode(bytes)); | |
| return StreamedResponse( | |
| Stream<List<int>>.value(bytes), | |
| response.statusCode, | |
| contentLength: response.contentLength, | |
| request: response.request, | |
| headers: response.headers, | |
| isRedirect: response.isRedirect, | |
| persistentConnection: response.persistentConnection, | |
| reasonPhrase: response.reasonPhrase, | |
| ); | |
| } | |
| @override | |
| void close() { | |
| _client.close(); | |
| } | |
| } |