RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / 问题 / 1142227
Accepted
Andrey Khan
Andrey Khan
Asked:2020-06-17 20:55:49 +0000 UTC2020-06-17 20:55:49 +0000 UTC 2020-06-17 20:55:49 +0000 UTC

Flutter API 帖子

  • 772

有一个发布请求示例:

POST /api HTTP/1.1
Host: checkout.test.paycom.com
X-Auth: 100fe486b33784292111b7dc
Cache-Control: no-cache

{
    "id": 123,
    "method": "cards.create",
    "params": {
        "card": { "number": "4444444444444444", "expire": "0420"},
        "amount": 350000,
        "save": true
    }
}

功能:

class Service {

 static String url = 'checkout.test.paycom.com';
  static Map<String, dynamic> headers = {
    'Host': 'checkout.test.paycom.com',
    'X-Auth': '3423343243434',
    'Cache-Control': 'no-cache'
  };

  Future createCard(
      String id, String cardNumber, String expire, int amount) async {
    try {
      Map<String, dynamic> body = {
        'id': id,
        'method': 'cards.create',
        'params': {
          'card': {
            'number': cardNumber,
            'expire': expire,
          },
          'amount': amount,
        },
      };
      final response = await http.post(url, body: body, headers: headers);
      if (response.statusCode == 200) {
        final result = jsonDecode(response.body);
        List<CardModel> data = result['params']['card'];

        print(data);
      }
    } catch (e) {
      print(e.toString());
    }
    return null;
  }
}


 factory CardModel.fromJson(Map<String, dynamic> json) {
return CardModel(
  id: json['id'],
  cardNumber: json['number'],
  expire: json['expire'],
  amount: int.parse(json['amount']),
);

}

给出错误类型“_InternalLinkedHashMap<String, Object>”不是类型转换中“String”类型的子类型。我究竟做错了什么?

flutter
  • 1 1 个回答
  • 10 Views

1 个回答

  • Voted
  1. Best Answer
    MiT
    2020-06-17T23:48:02Z2020-06-17T23:48:02Z

    方服务器的回答不正确(为了不手写,有:网站,VSCode插件,AS插件,cogen):

    import 'dart:convert';
    import 'package:http/http.dart';
    
    void main() {
      Service s = Service();
      s.createCard("123", "4444444444444444" , "0420", 350000);
    }
    
    class Service {
      static String url = 'checkout.test.paycom.com';
      static Map<String, dynamic> headers = {
        'Host': 'checkout.test.paycom.com',
        'X-Auth': '3423343243434',
        'Cache-Control': 'no-cache'
      };
    
      Future createCard(String id, String cardNumber, String expire, int amount) async {
        try {
          Map<String, dynamic> body = {
            'id': id,
            'method': 'cards.create',
            'params': {
              'card': {
                'number': cardNumber,
                'expire': expire,
              },
              'amount': amount,
              'save': true
            },
          };
          final response = await http.post(url, body: body, headers: headers);
          if (response.statusCode == 200) {
            CardModel data = CardModel.fromJson(json.decode(str));
    
            print(data.result.card.token);
          }
        } catch (e) {
          print(e.toString());
        }
        return null;
      }
    }
    
    class CardModel {
        CardModel({
            this.jsonrpc,
            this.id,
            this.result,
        });
    
        final String jsonrpc;
        final int id;
        final Result result;
    
        factory CardModel.fromJson(Map<String, dynamic> json) => CardModel(
            jsonrpc: json["jsonrpc"] == null ? null : json["jsonrpc"],
            id: json["id"] == null ? null : json["id"],
            result: json["result"] == null ? null : Result.fromJson(json["result"]),
        );
    
        Map<String, dynamic> toJson() => {
            "jsonrpc": jsonrpc == null ? null : jsonrpc,
            "id": id == null ? null : id,
            "result": result == null ? null : result.toJson(),
        };
    }
    
    class Result {
        Result({
            this.card,
        });
    
        final Card card;
    
        factory Result.fromJson(Map<String, dynamic> json) => Result(
            card: json["card"] == null ? null : Card.fromJson(json["card"]),
        );
    
        Map<String, dynamic> toJson() => {
            "card": card == null ? null : card.toJson(),
        };
    }
    
    class Card {
        Card({
            this.number,
            this.expire,
            this.token,
            this.recurrent,
            this.verify,
        });
    
        final String number;
        final String expire;
        final String token;
        final bool recurrent;
        final bool verify;
    
        factory Card.fromJson(Map<String, dynamic> json) => Card(
            number: json["number"] == null ? null : json["number"],
            expire: json["expire"] == null ? null : json["expire"],
            token: json["token"] == null ? null : json["token"],
            recurrent: json["recurrent"] == null ? null : json["recurrent"],
            verify: json["verify"] == null ? null : json["verify"],
        );
    
        Map<String, dynamic> toJson() => {
            "number": number == null ? null : number,
            "expire": expire == null ? null : expire,
            "token": token == null ? null : token,
            "recurrent": recurrent == null ? null : recurrent,
            "verify": verify == null ? null : verify,
        };
    }
    

    如何从json解析数组

    如何序列化json

    • 0

相关问题

  • 1 秒后打印每个列表值

  • 颤振函数调用

  • 如何将代码分配给参数

  • 如何在字符串中放置空格?

  • 更改 Firestore 中的布尔值

  • 显示数据

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    如何从列表中打印最大元素(str 类型)的长度?

    • 2 个回答
  • Marko Smith

    如何在 PyQT5 中清除 QFrame 的内容

    • 1 个回答
  • Marko Smith

    如何将具有特定字符的字符串拆分为两个不同的列表?

    • 2 个回答
  • Marko Smith

    导航栏活动元素

    • 1 个回答
  • Marko Smith

    是否可以将文本放入数组中?[关闭]

    • 1 个回答
  • Marko Smith

    如何一次用多个分隔符拆分字符串?

    • 1 个回答
  • Marko Smith

    如何通过 ClassPath 创建 InputStream?

    • 2 个回答
  • Marko Smith

    在一个查询中连接多个表

    • 1 个回答
  • Marko Smith

    对列表列表中的所有值求和

    • 3 个回答
  • Marko Smith

    如何对齐 string.Format 中的列?

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5