Json запросить подпись и расшифровку - PullRequest
0 голосов
/ 04 октября 2018

У меня есть этот запрос Json с проверкой подлинности Basic, который продолжает возвращать эту ошибку: было выдано другое исключение: E / flutter (19791): [ОШИБКА: flutter / shell / common / shell.cc (181)] Ошибка дротика: необработанное исключение: E / flutter (19791): FormatException: Неожиданный символ (в символе 1) E / flutter (19791): Не удается демонтировать JSON как DecryptRequest ". Кто-нибудь испытывает ту же проблему и как ее можно решить ???

import 'package:flutter/material.dart';
import 'dart:async';
import 'dart:convert';
import 'dart:io';
import 'dart:typed_data';
import 'package:http/http.dart' as http;
import 'package:pointycastle/api.dart';
import 'package:pointycastle/padded_block_cipher/padded_block_cipher_impl.dart';
import 'package:pointycastle/paddings/pkcs7.dart';
import 'package:pointycastle/block/aes_fast.dart';
import 'package:pointycastle/block/modes/cbc.dart'

Future<http.Response> post() async {
    var url = 'http:';
    String password = "";
    String username = "";

    var bytes = utf8.encode("$username:$password");
    Uint8List key = Uint8List.fromList(
      [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15],
    );
    Uint8List iv = Uint8List.fromList(
      [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16],
    );
    String Json  =
    jsonEncode({'account': _account, 'phone': _mobile, 'amount': _amount});

    Uint8List plainText = Uint8List.fromList(utf8.encode(Json));

    PaddedBlockCipher cipher = PaddedBlockCipherImpl(
      PKCS7Padding(),
      CBCBlockCipher(AESFastEngine()),
    );
    cipher.init(
      true,
      PaddedBlockCipherParameters<CipherParameters, CipherParameters>(
        ParametersWithIV<KeyParameter>(KeyParameter(key), iv),
        null,
      ),
    );
    Uint8List cypherText = cipher.process(plainText);

    var credentials = base64.encode(bytes);
    var headers = {
      "Content-Type": "application/json",
      "Authorization": "Basic $credentials"
    };



    http.Response response =
    await http.post(url, body:  cypherText.toString(), headers: headers);
    var responseJson = json.decode(response.body);
    print(Utf8Codec().decode(response.bodyBytes));

    print("Body: " + responseJson);
  }
...