我在postman上準備了一個請求,更新我網站上的一個資料陣列,并將dart代碼復制到我的flutter應用中,以下是postman代碼
var headers = {
'Authorization': '...'。
'Cookie': '...'var request = http.MultipartRequest('POST', Uri.parse('my_endpoint')) 。
request.fields.addAll({
'field[0][field_id]'。'20'。
'field[0][group_id]': '1',
'field[0][value]': 'Android Developer',
'field[0][value]': 'Web Developer'.
});
request.headers.addAll(headers)。
http.StreamedResponse response = await request.send()。
if (response.statusCode == 200) {
print(await response.stream.bytesToString())。
}
else {
print(response.reasonPhrase)。
}
問題是Flutter會洗掉body map中的最后一對,因為它的鍵和前一個相同,所以只有更新操作的結果才是Web Developer的,但我認為我的請求只是這樣作業的,我怎樣才能處理這個問題。
uj5u.com熱心網友回復:
你可以在formData中以{key[value][0]: value1, key[value][1]: value2, ...}方式發送一個陣列。
在這里實作這個目的的方法是:
final values = ["Android Developer", "Web Developer"]。
Map<String, String> valuesArray = {
for (var i = 0; i < values. length; i ) 'field[0][value][$i]'/span>: values[i]
};
request.fields.addAll({
...valuesArray,
'field[0][field_id]': '20'。
'field[0][group_id]': '1'。
});
另外,如果可能的話,我建議你使用content-type:json,因為只需創建一個Map<String, dynamic>體并使用jsonEncode對其進行編碼就可以了。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/311851.html
標籤:
上一篇:為什么我在使用TextBlob時出現了HTTP錯誤?
下一篇:谷歌分析4測量協議不作業
