POST изображение на веб-сервис с Flutter - PullRequest
0 голосов
/ 24 мая 2018

В настоящее время я использую Flutter и Dart, чтобы попытаться отправить изображение в веб-сервис, после чего я жду ответа JSON.Приведенные ниже ссылки показывают запрос Почтальона, который я пытаюсь имитировать.

Изображение Почтальона с необходимыми заголовками

Изображение Почтальона с телом

Я думаю, что проблема, с которой я столкнулся, заключается в неправильной настройке заголовков моего запроса или неправильном кодировании изображения.

В настоящее время я получаю ошибку HTTP 400.

Я пытался следовать этим предлагаемым решениям в StackOverflow , но получал ошибку HTTP 400.

Любая помощь будет принята с благодарностью!

1 Ответ

0 голосов
/ 24 мая 2018

Попробуй это.Я бы посоветовал создать себе простой дартс-проект, если вы еще этого не сделали.Таким образом, вы можете тестировать вещи без использования эмулятора телефона и т. Д.

main() async {
  http.MultipartRequest request =
      new http.MultipartRequest('POST', Uri.parse(url));

  request.headers['Prediction-Key'] = '3f4a......'; // todo - insert real value

  request.files.add(
    new http.MultipartFile.fromBytes(
      'image',
      bytes,
      filename: 'somefile', // optional
      contentType: new MediaType('image', 'jpeg'),
    ),
  );

  http.StreamedResponse r = await request.send();
  print(r.statusCode);
}

Если файл находится на диске, а не в памяти, используйте взамен именованный конструктор fromPath.Экспериментируйте с различными типами носителей.Я использовал image/jpeg, но вы можете попробовать application/octet-stream.

В качестве отступления, на вашем первом скриншоте вы показываете тип контента, но Postman игнорирует это, так как общий тип контента переопределяется несколькими частями.форма.Снимите галочку с этой строки в Postman, чтобы доказать это.

Недавно в SO возник другой вопрос, когда сервер неправильно ожидал, что заголовки будут чувствительными к регистру.В почтальоне попробуйте еще раз с prediction-key в нижнем регистре, чтобы доказать, что сервер не против строчных заголовков (это то, что использует Dart).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...