Fay*_*yaz 48 http dart flutter
Map<String,String> headers = {'Content-Type':'application/json','authorization':'Basic c3R1ZHlkb3RlOnN0dWR5ZG90ZTEyMw=='};
var response = await post(Urls.getToken,
headers: headers,
body: {"grant_type":"password","username":"******","password":"*****","scope":"offline_access"},
);
Run Code Online (Sandbox Code Playgroud)
当我执行此操作时,我无法接收数据并且抛出的错误是
错误状态:无法设置内容类型为“application/json”的请求的正文字段
小智 107
您需要将身体包裹在jsonEncode.
import 'package:http/http.dart' as http;
import 'dart:convert';
Map<String,String> headers = {'Content-Type':'application/json','authorization':'Basic c3R1ZHlkb3RlOnN0dWR5ZG90ZTEyMw=='};
final msg = jsonEncode({"grant_type":"password","username":"******","password":"*****","scope":"offline_access"});
var response = await post(Urls.getToken,
headers: headers,
body: msg,
);
Run Code Online (Sandbox Code Playgroud)
Roh*_*had 11
使用jsonEncode包裹你的身体object。
import 'package:http/http.dart' as http;
import 'dart:convert';
var headers = {
'Content-Type':'application/json',
'authorization':'Basic c3R1ZHlkb3RlOnN0dWR5ZG90ZTEyMw=='
};
final body = {
'username':'foo',
'password':'pass123'
}
var response = await post(
Urls.getToken,
headers: headers,
body: jsonEncode(body), // use jsonEncode()
);
Run Code Online (Sandbox Code Playgroud)
为什么jsonEncode?
body : 它可以是 [String]、[List] 或 [Map<String, String>]。它使用 encoding 进行编码并用作请求的正文。请求的内容类型将默认为“text/plain”。
但是因为你设置content-type为json你必须传递一个 JSON 作为正文。
但是您Map<String, String>作为主体传递,这显然会引发错误。
所以要解决这个问题,你必须改变或编码您Map<String, String>要json通过使用(JSON字符串)jsonEncode。
| 归档时间: |
|
| 查看次数: |
26134 次 |
| 最近记录: |