Api呼叫通过邮递员工作,但不适用于Flutter

时间:2020-01-20 22:15:19

标签: json api flutter dart

我正在通过flutter应用程序对服务器进行api调用,但是我不断收到503错误,提示我的令牌不正确。但是,我已经证实这是正确的。我也可以通过邮递员进行api调用。

通过邮递员我可以下订单没问题:

enter image description here

但是当我通过我的应用程序进行相同的api调用时:

Future<dynamic> createOrder(
    String stripeToken, accessToken, restaurantId, address, order) async {
  var url = 'https://buddies-8269.herokuapp.com/api/customer/order/add/';

  // print(url);

  final Map<String, dynamic> createOrder = {
    'access_token': accessToken,
    'stripe_token': stripeToken,
    'restaurant_id': restaurantId,
    'address': address,
    'order_details': order,
  };

  print(json.encode(createOrder));

  http
      .post(url,
          headers: {"Content-Type": "application/json"},
          body: json.encode(createOrder))
      .then((http.Response response) {
    if (response.statusCode == 200) {
      final Map<String, dynamic> responseData = json.decode(response.body);
      print(responseData);
      print('Response body: ${response.body}');
      print(response.request);
    } else {
      print(response.statusCode);
    }
  });
}

呼叫中正在发送的数据是:

{"access_token":"ITgL7UElbR5GU7oeerVEr3UZKiG5AV","stripe_token":"tok_visa_debit","restaurant_id":10,"address":"55 Glenwood, brooklyn NY, 32133","order_details":[{"product_size":47,"quantity":2}]}

我在应用中遇到此错误:

oauth2_provider.models.DoesNotExist: AccessToken matching query does not exist.
sock=backend at=error code=H18 desc="Server Request Interrupted" method=POST path="/api/customer/order/add/" host=buddies-8269.herokuapp.com 

我不明白为什么我可以通过邮递员而不是通过应用程序拨打电话。

1 个答案:

答案 0 :(得分:1)

我相信您在使用表单数据时还需要添加"Content-Type": "application/x-www-form-urlencoded"标头。