【发布时间】:2020-05-09 17:51:31
【问题描述】:
我正在尝试将来自我的颤振应用程序的请求发布到 Flask REST API,使用 POST MAN 测试 API 没有问题,但是在颤振中我在颤振中遇到如下错误:
I/flutter (6378): FormatException: 意外字符(在字符 1 处) 我/颤振(6378): 我/颤动(6378):^
在 Flask APP 中是这样的:
[2020-01-23 11:42:32,517] 应用程序中的错误:/cards [POST] 上的异常 回溯(最近一次通话最后): wsgi_app 中的文件“/home/shaukat/.local/lib/python3.7/site-packages/flask/app.py”,第 2311 行 响应 = self.full_dispatch_request() 文件“/home/shaukat/.local/lib/python3.7/site-packages/flask/app.py”,第 1834 行,在 full_dispatch_request rv = self.handle_user_exception(e) 文件“/home/shaukat/.local/lib/python3.7/site-packages/flask/app.py”,第 1737 行,在 handle_user_exception reraise(exc_type, exc_value, tb) 文件“/home/shaukat/.local/lib/python3.7/site-packages/flask/_compat.py”,第 36 行,在 reraise 升值 文件“/home/shaukat/.local/lib/python3.7/site-packages/flask/app.py”,第 1832 行,在 full_dispatch_request rv = self.dispatch_request() 文件“/home/shaukat/.local/lib/python3.7/site-packages/flask/app.py”,第 1818 行,在 dispatch_request 返回 self.view_functionsrule.endpoint 文件“/home/shaukat/Projects/udemy flask rest API 和 python/rest-api-sections-master/section3/app.py”,第 19 行,在 create_card 'id': request_data["id"], TypeError:“NoneType”对象不可下标 127.0.0.1 - - [23/Jan/2020 11:42:32]“POST /cards HTTP/1.1”500 - 我在颤振中的代码:
Future<void> addNewCard(NewCard product) async {
const url = 'http://10.0.2.2:5000/cards';
try {
final response = await http.post(
url,
body: json.encode({
'id': product.id,
'cardNo': product.cardNo,
'cardType': product.cardType,
'amount': product.amount,
}),
);
final newProduct = NewCard(
id: json.decode(response.body)['id'],
cardNo: product.cardNo,
cardType: product.cardType,
amount: product.amount,
);
print(newProduct);
_newCard.add(product);
// _items.insert(0, newProduct); // at the start of the list
notifyListeners();
} catch (error) {
print(error);
throw error;
}}
python Flask 中的代码:
@app.route('/cards', methods=['POST'])
def create_card():
request_data = request.get_json()
new_cards = {
'id': request_data["id"],
'cardNo': request_data["cardNo"],
'cardType': request_data["cardType"],
'amount': request_data["amount"],
}
cards.append(new_cards)
return jsonify(cards)
【问题讨论】:
-
在flask脚本中,
cards是从哪里来的? -
http.post( url, body: json.encode({ 'id': product.id, 'cardNo': product.cardNo, 'cardType': product.cardType, 'amount': product .amount, }),
标签: python-3.x api post flutter flask