我正在通过flutter应用程序对服务器进行api调用,但是我不断收到503错误,提示我的令牌不正确。但是,我已经证实这是正确的。我也可以通过邮递员进行api调用。
通过邮递员我可以下订单没问题:
但是当我通过我的应用程序进行相同的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
我不明白为什么我可以通过邮递员而不是通过应用程序拨打电话。
答案 0 :(得分:1)
我相信您在使用表单数据时还需要添加"Content-Type": "application/x-www-form-urlencoded"
标头。