私はオブジェクトとAPIをAPIに転記しようとしています。
var params = {
"item": "itemx",
"options": [1,2,3],
};
print(params);
try {
Response response = await _dio.post(getAddToCartURL,
queryParameters: params,
options: Options(headers: {
HttpHeaders.contentTypeHeader: "application/json",
}));
} catch (error, stackTrace) {
print("Exception occurred: $error stackTrace: $stackTrace");
return false;
}
_
DIOはオブジェクトを次のように送信します。
POST /api/add-to-cart/?item=itemx&options%5B%5D=1&options%5B%5D=2&options%5B%5D=3
_
aPIがそれを悪い要求と認識する。
ここでやっているのは何が悪いのですか?私は[「1」、「2」、「3」でリストを試してみました、それは同じです。
それはすべてAPIがどのように期待するかによって異なります。 JSONとしてエンコードしようとすることをお勧めします。
_var params = {
"item": "itemx",
"options": jsonEncode([1,2,3]),
};
_
しかし、クエリパラメータに複雑なデータを送信すると、必ずしも簡単ではありません。とにかくPOSTを使用しているので、クエリパラメータを使用する代わりにJSONオブジェクトをBODYとして送信してください。
_var params = {
"item": "itemx",
"options": [1,2,3],
};
...
Response response = await _dio.post(getAddToCartURL,
options: Options(headers: {
HttpHeaders.contentTypeHeader: "application/json",
}),
data: jsonEncode(params),
);
_