Я не знаю, как использовать данные, отправленные из flutter в голанге

# #amazon-web-services #flutter #dart #go

Вопрос:

         var request = http.MultipartRequest('post', Uri.parse(TravelingUrl.testAddress   '/test'));

        request.fields['title'] = createDiary.value.title as String;
        request.fields['tag_list'] = createDiary.value.tagList.toString();
        request.fields['date'] = createDiary.value.date.toString();

        for (var i = 0; i < createDiary.value.pages!.length; i  ) {
          Pages _tempPage = createDiary.value.pages![i];
          request.fields['pages[$i][order]'] = jsonEncode(_tempPage.order);
          request.fields['pages[$i][description]'] =
              jsonEncode(_tempPage.description);
          for (var ii = 0; ii < _tempPage.images!.length; ii  ) {
            request.files.add(await http.MultipartFile.fromPath(
                'pages[$i][images]', _tempPage.images![ii]));
          }
        }

        var response = await request.send();
 

Приведенный выше код представляет собой логику передачи данных с flutter на golang.

и я хочу использовать в golang то, что получено от flutter.

я определил структуру в golang следующим образом

     type _pages struct {
        Order       uint             `json:"order"`
        Description string           `json:"description"`
        Images      []multipart.File `json:"images"`
    }
    type _tags struct {
        TagId   uint   `json:"id"`
        TagName string `json:"tag_name"`
    }
    type _getData struct {
        Title    string `json:"title"`
        Date     string `json:"date"`
        Location string `json:"location"`
        Address  string `json:"address"`
        _tags
        _pages
    }
 

Я не знаком с golang, пожалуйста, помогите, могу ли я увидеть простой пример получения данных и их использования?

В переменной массива есть данные файла, я хочу получить данные и сохранить эти данные файла в s3.

Комментарии:

1. fmt.Print(r.Значение формы(«название»)) работает нормально, но fmt. Печать(значение r.FormValue(«страницы»)) не работает,

2. Я не знаю, сколько элементов на странице

3. Так ли использует его большинство разработчиков?

Ответ №1:

Запрос на звонок.Значение формы и запрос.Сформируйте файл, чтобы получить значения и файлы.

Для полей, похожих на массив, создайте имена строковых параметров, как это делает клиент. Зацикливайтесь на индексах массива и прерывайтесь, когда для страницы нет поля.

 title := r.FormValue("title")
tagList := r.FormValue("tag_list")
...
for i := 0; i < maxPossiblePages; i   { 
   if _, ok := r.Form[fmt.Sprintf("pages[%d][order]", i)]; !ok { 
        break; 
   } 
   pageOrder := r.FormValue(fmt.Sprintf("pages[%d][order]", i))
   pageDescription := r.FormValue(fmt.Sprintf("pages[%d][description]", i))
   ...
}