sendDataToBackend method

dynamic sendDataToBackend(
  1. num x,
  2. num y,
  3. List<int>? bytes,
  4. List<Map<String, dynamic>> components,
  5. Image image,
  6. String pageName,
  7. String pageTag,
)

Implementation

sendDataToBackend(
    num x,
    num y,
    List<int>? bytes,
    List<Map<String, dynamic>> components,
    ui.Image image,
    String pageName,
    String pageTag) async {
  try {
    print("screenShot started 4 ${DeepLinkHandler.screenshotToken}");
    var headers = {
      'Authorization': DeepLinkHandler.screenshotToken,
    };
    var request = http.MultipartRequest(
        'POST', Uri.parse('$nudgeUrl/pg/upload/screenshot'));

    // debugPrint(jsonEncode(components));

    request.fields.addAll({
      'socketId': DeepLinkHandler.socketId,
      'name': pageName,
      'pageId': DateTime.now().toIso8601String(),
      'appVersion': '1.0.1',
      'tag': pageTag,
      'properties': jsonEncode({"screenSize": "${x}x${y}"}),
      'components': jsonEncode(components)
    });

    request.files.add(http.MultipartFile.fromBytes('screenshot', bytes!,
        contentType: MediaType('image', 'png'), filename: 'screenshot.png'));
    request.headers.addAll(headers);

    var response = await request.send();

    // Reading and printing the response body
    final responseBody = await response.stream.bytesToString();
    print("Response Status: ${response.statusCode}");
    print("Response Body: $responseBody");
  } catch (e, st) {
    print(e);
    print(st);
  }
}