5
votes

I want to make a post request in Flutter with the following code:

// Body: {"email": "[email protected]", "pass": "passw0rd"}

Future<dynamic> post(String url, var body) async {
  var response = await http.post(url, body: body);
  final String res = response.body;
  return res;
}

// That's not the full code. I removed some lines because they are useless for this thread.
// Most of them are only some debug outputs or conditional statements

The problem is that my post request doesn't include the body with my request. I checked that with some outputs on my server.

1
Try sending the request to httpbin.org/post which will echo the request. Perhaps you are missing a request header. Can you perform a valid post with curl or Postman?Richard Heap

1 Answers

8
votes

You just have to encode the body before sending:

import 'dart:convert';
...

var bodyEncoded = json.encode(body);
var response = await http.post(url, body: bodyEncoded , headers: {
  "Accept": "application/json"
},);