flutter HTTP添加自定义报头值



我有以下卷曲的邮差

curl --location --request POST 'https://example.com/api/user' 
--header 'email: test@example.com' 
--form 'amount="5000"' 
--form 'payment_type_id="7"' 
--form 'agent_id="1334"' 
--form 'phone="0123456789"'

但是当我试图使它在扑动http请求中工作时,它不会在标题中获得email值。

Future getSells() async {
var response = await http.post(
Uri.parse('https://example.com/api/user'),
headers: {
HttpHeaders.acceptHeader: 'application/json',
"email": 'test@example.com',
},
body: {
'amount': '5000',
'payment_type_id': '7',
'agent_id': '1334',
'phone': '0123456789',
},
);
if (response.statusCode == 200) {
var jsonResponse = convert.jsonDecode(response.body) as Map<String, dynamic>;
if (kDebugMode) {
print('data:  $jsonResponse'); // result below
}
return jsonResponse['data'];
} else {
if (kDebugMode) {
print('Err1::: ${response.statusCode}');
print('Err2::: ${response.body}');
}
return [];
}
}

Error

I/flutter (6352): data: {error: access-denied}

关于如何在头中传递email的任何建议?

你可以这样做作为它的表单请求:

var uri = Uri.parse('https://example.com/api/user');
var request = MultipartRequest('POST', uri);

request.fields['amount'] = '5000';
request.fields['payment_type_id'] = '7';
request.fields['agent_id'] = '1334';
request.fields['phone'] = '0123456789';
request.headers.addAll( {'email' : 'test@example.com' });

try {
var streamedResponse = await request.send();
var response = await Response.fromStream(streamedResponse);

print(response.body);
var data = jsonDecode(response.body);
var keyData= data['data'];
print(keyData);
} catch (e) {
rethrow;
}

最新更新