#javascript #flutter #dart #request
Вопрос:
Я хочу получить список аниме с сервера по запросу POST (это поиск, поэтому я делаю запрос POST со строковым параметром). У меня есть код с сайта, который работает и возвращает два-три аниме — это правильный ответ, и мое приложение возвращает небольшой список аниме. Почему это происходит? Я даю тот же параметр «привет».
Вот код Javascript, он работает:
let body = "name=" encodeURIComponent(getParameterByName('search'));
var req = new XMLHttpRequest();
req.open("POST", "https://api.animevost.org/v1/search", true);
req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
req.onload = function () {
unpackLastTitles(req.response);
};
req.onerror = function () {
alert("Загрузка не удалась");
};
console.log(9898, body, req);
req.send(body);
И вот мой код Флаттера, он возвращает большой список аниме (вместо искомых) независимо от того, что вы ищете:
final response = await http.post(
Uri.https('api.animevost.org', '/v1/search', {'name': tC.text}),
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
"Access-Control-Allow-Origin": "*",
"Access-Control-Allow-Credentials": 'true',
"Access-Control-Allow-Headers":
"Origin,Content-Type,X-Amz-Date,Authorization,X-Api-Key,X-Amz-Security-Token,locale",
"Access-Control-Allow-Methods": "POST, OPTIONS"
});
Ответ №1:
Вы должны отправить это в качестве параметра тела.
final response = await http.post(
Uri.https('api.animevost.org', '/v1/search'),
body: {'name': tC.text}, // Setting as body parameter
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
"Access-Control-Allow-Origin": "*",
"Access-Control-Allow-Credentials": 'true',
"Access-Control-Allow-Headers":
"Origin,Content-Type,X-Amz-Date,Authorization,X-Api-Key,X-Amz-Security-Token,locale",
"Access-Control-Allow-Methods": "POST, OPTIONS"
});